Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add oxbshw/watch-skill --skill watching-videosgit clone --depth 1 https://github.com/oxbshw/watch-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/oxbshw/watch-skill/watching-videos)<a href="https://agentmods.dev/skills/oxbshw/watch-skill/watching-videos"><img src="https://agentmods.dev/badge/skills/oxbshw/watch-skill/watching-videos/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/oxbshw/watch-skill/watching-videos"><img src="https://agentmods.dev/badge/skills/oxbshw/watch-skill/watching-videos.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.00606 |
| Opus 5 | $0.00048 | $0.00303 |
| Sonnet 5 | $0.00019 | $0.00121 |
| Haiku 4.5 | $0.00010 | $0.00061 |
Grade A, and why
watching-videos scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Watching videos
You don't have a video input; this skill gives you one. Anything a user hands you — a YouTube link, a TikTok, a lecture, a meeting recording, a screen capture, an .mp4 on disk — goes through the same pipeline: frames (scene-aware, deduplicated), OCR, transcript (captions first, local Whisper offline fallback), all persisted into one index.
Before watching: check the index
watch-skill list
If the video was already analyzed — this session or any earlier one —
do NOT watch it again. Ask it directly (see the asking-with-evidence
skill):
watch-skill ask <video_id> "<question>"
One video
watch-skill watch "<url-or-path>" [--start T --end T] [--max-frames N] [--transcript-only]
- Works on any yt-dlp-supported site (1800+), direct media URLs, HLS/DASH
manifests (
--duration 60bounds live streams), and local files. - Video over ~10 minutes and the user cares about one part → use
--start/--endfor dense sampling of that window. - User only needs what was said →
--transcript-only(fastest, often no video download at all).
The report prints Indexed: <video_id>, frames with t=MM:SS
timestamps, OCR text, and the transcript. Read every frame path listed —
in a single message, parallel Read calls — then answer from frames + OCR
- transcript, citing timestamps.
Many videos (playlist, channel, folder)
watch-skill batch "<playlist-url-or-folder>" [--limit N]
Everything lands in the same index; one broken video never stops the
rest. Afterwards a single watch-skill search "<phrase>" spans the whole
batch.
First run on a machine
If any command fails with a dependency error, run watch-skill doctor
once — it installs missing ffmpeg/yt-dlp itself. No API key is required
for any of this; transcription is local by default and the video file
never leaves the machine.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed 2631f6fe57a4
- 3d ago Changed 52c0d0fcdb47
- 5d ago Changed 5255f3b5cb06
- 12d ago First seen · 66 lines · 97 tokens per session scan A 1b3e1b0c381a
watching-videos is a skill published in the GitHub repository oxbshw/watch-skill (370 stars, last pushed 3d ago), licensed MIT. It adds 97 tokens to every session and 606 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
cerul
Search local videos by meaning, exact words, or a reference image, and annotate actions, events, interactions, and states in videos or LeRobot demonstrations. Use when the user mentions video search, finding a moment in a recording, exporting clips, video annotation, egocentric or robot demonstrations, or LeRobot…
render-html-report
Produce a human-facing visual report — a chart, dashboard, scorecard, or styled summary — that renders as a live page in the screenpipe viewer instead of plain text. Use when the task asks for a visual/graphical output rather than a plain note; do NOT use for plain text or raw data (prefer a markdown note for those).
screenpipe-chats
Search what was said in existing screenpipe, Codex, Claude, Cursor, and Gemini CLI chats, then continue or steer one exact chat when the user explicitly asks. Use for requests about finding another agent conversation, recalling what an agent said, or sending work to one.
screenpipe-team
Use the native Screenpipe CLI to query Enterprise team activity or safely preview, deploy, and schedule managed team Pipes. Injected only by the Enterprise app for active admins.
segment-anything-model
Foundation model for image segmentation with zero-shot transfer. Use when you need to segment any object in images using points, boxes, or masks as prompts, or automatically generate all object masks in an image.
stable-diffusion-image-generation
State-of-the-art text-to-image generation with Stable Diffusion models via HuggingFace Diffusers. Use when generating images from text prompts, performing image-to-image translation, inpainting, or building custom diffusion pipelines.