video-watch
Skill1 starsChanged 34 days agoMITView on GitHub
Watch / analyze a video or audio source the agent cannot natively play. Triggers: 'watch this video', 'analyze this short/reel/clip', 'what happens in this video', 'reverse-engineer this video', 'read the frames of', 'transcribe this video', '/video-watch'. A URL from YouTube, TikTok, Instagram, X, Facebook, Vimeo, Reddit, Twitch, LinkedIn or 1750+ other sites, or a local file. Downloads it, pulls captions (or transcribes locally when there are none), and extracts frames so the agent can Read the transcript + frames and describe pacing, hooks, on-screen text, format, or answer questions about the content. No API key needed.
10 other projects use a version of this.
Adopted by
Most recently taken up by
- vamsireddy4/claude-watchtheir own version, first seen Nov 15, 2026
- aktsmm/Agent-Skillstheir own version, first seen Nov 10, 2026
- AlomoesDataScience/claude-skillstheir own version, first seen Nov 8, 2026
- witnesstodark/mr-mak-workspacetheir own version, first seen Oct 24, 2026
- gadingboding/MyAgentSkillstheir own version, first seen Oct 17, 2026
- AVANT-ICONIC/gpt-webui-skillstheir own version, first seen Oct 15, 2026
Other versions10 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 10
- witnesstodark/mr-mak-workspace★ 800same name
- aktsmm/Agent-Skills★ 27same name
- CFITCorporation/video-watch-skill★ 8same name
- vamsireddy4/claude-watch★ 8same name
- AlomoesDataScience/claude-skills★ 1same name
- belschak/video-watch★ 1same name
- casoon/ai-agent-config★ 1same name
- AVANT-ICONIC/gpt-webui-skills★ 0same name
- AVANT-ICONIC/skills★ 0same name
- gadingboding/MyAgentSkills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository20 other files it gives its agents.
- audio-narrateSkill
- audio-transcribeSkill
- cloudflare-opsSkill
- dokploy-opsSkill
- elevenlabs-studioSkill
- hetzner-opsSkill
- higgsfield-studio-brandkitSkill
- higgsfield-studio-marketplace-cardsSkill
- higgsfield-studio-product-photoshootSkill
- higgsfield-studioSkill
- higgsfield-studio-soul-idSkill
- higgsfield-studio-video-explainerSkill
- higgsfield-studio-websitesSkill
- higgsfield-studio-youtube-thumbnailSkill
- image-promptSkill
- namecheap-opsSkill
- plane-fleetSkill
- toolkit-credentialsSkill
- toolkit-updatesSkill
- video-promptSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Check and install what this skill needs:
- Distinctive: line 36
If a dependency is missing when you run the main script, it will point you here.
- Distinctive: line 40
Run the script. It prints a manifest with the transcript path and frame paths:
- Very specific: line 77
Comparing several videos: Run once per URL into separate --outdir directories, then read across the frame sets.
- Very specific: line 87
If a source that used to work stops downloading, the usual cause is an out-of-date yt-dlp.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
video-watch
Let the agent "watch" a video by turning it into a transcript plus frames it can Read.
When to use
- Someone shares a video URL or a local file and wants it watched, analyzed, summarized, or reverse-engineered — hook, pacing, on-screen text, editing style, format.
- You need the visual or spoken content of a video, not just its metadata.
- Also works on audio-only sources, in which case you get a transcript and no frames.
Setup
Check and install what this skill needs:
bash scripts/setup.sh --check # report only, installs nothing
bash scripts/setup.sh # shows a plan, asks, then installs
bash scripts/setup.sh --yes # non-interactive, for agent use
bash scripts/setup.sh --with-whisper # add free offline speech-to-textIt detects the platform and package manager (Homebrew, apt, dnf, pacman, zypper, apk, pipx/pip) and prints every command before running it. Nothing installs without a confirmation or an explicit --yes.
If a dependency is missing when you run the main script, it will point you here.
How to use
- Run the script. It prints a manifest with the transcript path and frame paths:
bash scripts/watch.sh "<url-or-path>" [options] - Read the transcript — the
.srtpath in the manifest, if present. - Read the frames in order (
frame_001.jpg,frame_002.jpg, …) — the visual track. - Synthesize: answer the question, or describe the hook (first ~1s), pacing and cuts, on-screen text, format (letterbox vs full-bleed), branding, and anything notable.
Options
| Option | Default | What it does |
--frames N | 30 (max 60) | Target frame count |
--width W | 480 | Frame width in px |
--start SEC / --end SEC | — | Sample a time range only |
--lang CODE | en.* | Caption language, e.g. ar.*, all |
--scenes | off | One frame per visual cut |
--no-whisper | off | Skip local transcription even if an engine is installed |
--whisper-model M | base | Speed vs accuracy, e.g. large-v3 |
--yes | off | Accept prompts, including installing a transcriber |
--cookies BROWSER | — | Login-gated videos, e.g. chrome |
--playlist N | single | Allow a playlist, take first N |
--outdir DIR | temp | Where output lands |
--keep-video | off | Keep the download |
Choosing options
Short clips (under 60s). The default 30 frames is roughly one every 1–2s. Plenty.
Long videos. Raise --frames, or better, use --start/--end to sample the section that matters. The whole file downloads before framing, so narrowing the range does not skip the download but does keep the frame count meaningful.
Edited video with cuts. --scenes gives one frame per visual cut, so you see the shots that actually exist rather than arbitrary samples across them. It falls back to even sampling automatically when a source has too few cuts to be useful, such as a static screencast or a single-shot talking head.
No captions. Many sources ship none. The script then looks for captions in any language, and if there are still none it transcribes locally — automatically, whenever a whisper engine is installed. Installing one is the opt-in; --no-whisper skips it, and --whisper-model large-v3 trades speed for accuracy.
Login-gated or age-restricted. --cookies chrome reuses a browser session you are already signed into. Only use it on accounts and content you have access to.
Comparing several videos. Run once per URL into separate --outdir directories, then read across the frame sets.
What it accepts
Any source yt-dlp supports — 1750+ sites including YouTube, TikTok, Instagram, X, Facebook, Vimeo, Reddit, Twitch, Dailymotion, Bilibili, SoundCloud and LinkedIn — plus direct media URLs and local files. Audio-only sources return a transcript with no frames.
Notes
- Reads publicly accessible media. It does not bypass paywalls or DRM.
--cookiesreuses your own session; it does not defeat access control. - A playlist URL downloads a single video unless you pass
--playlist N. - Downloaded video is deleted after framing unless you pass
--keep-video. Frames and transcript remain. - If a source that used to work stops downloading, the usual cause is an out-of-date yt-dlp.
scripts/setup.shwill update it.
Updates
This skill is versioned. Its version is metadata.version in the header of this file. CHANGELOG.md in this folder lists what changed in each version, newest first.
To check for a newer version, open the address on the Latest: line of CHANGELOG.md and compare its top version with the installed one. If the newer one is ahead, read every entry between the two and tell the user what changed before anything is updated. A Breaking section means the user has to do something. To update, reinstall the skill from its source repository, the same way it was installed.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

