video-watch
Skill0 starsChanged 14 days agoMITView on GitHub
Inspect videos from URLs or accessible local files using real timestamped frames and available audio or captions. Use for watching, summarizing, reviewing, reverse-engineering, or answering questions about visual events in a video; editor mode adds pacing metrics, a 0-10s hook breakdown, a report.md and optional Whisper transcription for creator or content analysis. A transcript alone is not a watch.
- Reads credentials
9 other projects use a version of this.
Adopted by
Most recently taken up by
- aktsmm/Agent-Skillstheir own version, first seen Nov 8, 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
- itqanlab/agent-toolkittheir own version, first seen Oct 13, 2026
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- witnesstodark/mr-mak-workspace★ 718same name
- aktsmm/Agent-Skills★ 26same name
- CFITCorporation/video-watch-skill★ 8same name
- AlomoesDataScience/claude-skills★ 1same name
- belschak/video-watch★ 1same name
- casoon/ai-agent-config★ 1same name
- itqanlab/agent-toolkit★ 1same name
- AVANT-ICONIC/gpt-webui-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 repository11 other files it gives its agents.
- anti-sloprushSkill
- architecture-guardSkill
- futurequakeSkill
- game-studioSkill
- gauntlet-loopSkill
- geometric-designSkill
- intent-modeSkill
- openspec-workflowSkill
- seo-aiseoSkill
- test-velocitySkill
- visual-outputSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
Inventory first: Check the current message, prior visible conversation, large pasted-text attachments, uploaded .txt/.vtt/.srt files, …
- Distinctive: line 25
Evidence (default): Use to answer questions about what happens, to verify, summarize, review a demo or reverse-engineer an event.
- Distinctive: line 46
Read media metadata and any extraction manifest.
- Distinctive: line 48
Read available transcript evidence.
- Distinctive: line 52
Never treat generated images as inspected evidence, search excerpts as a transcript, or captions as proof of visible action.
“Common” is measured: kept by at least 6 in 10 of the 6 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
Actually inspect the video. Keep observed visuals, spoken or captioned content, and inference distinct.
Answer-first fallback (mandatory)
The user's answer and the ability to download video frames are different deliverables. Video access can fail; transcript evidence already provided by the user must never be discarded.
- Inventory first. Check the current message, prior visible conversation, large pasted-text attachments, uploaded
.txt/.vtt/.srtfiles, previously extracted transcripts, frames and manifests before trying any URL. Read a complete user-supplied transcript directly rather than re-fetching it or asking for it again. - Keep two independent evidence lanes. The transcript lane supports dialogue, narrated events, topics, timestamps and attributed claims. The visual lane supports on-screen events, UI, text, imagery and actions after frames have actually been inspected. A failure in one lane must not invalidate results in the other.
- Produce the useful answer early. If the question can be substantially answered from the transcript, do so, including timestamp references. Attempt visual verification only for material uncertainty or when the question explicitly demands visual details. Never finish with a wall of tool failures when a complete transcript could answer the question.
- Bound tool attempts. For nonessential visual work, try one direct acquisition and at most one genuinely different, already-connected watching path if available and permitted. Do not repeatedly poll queued jobs, invent accessible URLs, demand a video upload when the transcript suffices, or silently spend metered credits.
- Label completeness honestly. VISUAL + TRANSCRIPT means real inspected frames and transcript; VISUAL ONLY means inspected frames but no spoken evidence; TRANSCRIPT ONLY means an answer based on captions or pasted text without visual verification; UNAVAILABLE means neither evidence lane produced useful content. Extraction success or a queued job alone does not constitute visual inspection.
Transcript-only is a valid completed answer for transcript-answerable questions, but is never called "watched". Editor-mode visual/pacing deliverables remain incomplete until actual visual evidence exists. If a requested visual fact cannot be checked, state exactly that and still deliver the supported transcript-based findings. Treat auto-caption money amounts, decimals, names, and internally inconsistent arithmetic as unverified transcription rather than silently correcting them.
Choose a mode
- Evidence (default). Use to answer questions about what happens, to verify, summarize, review a demo or reverse-engineer an event. Output: frames, contact sheets, manifest, captions.
- Editor. Use when the task is about how the video is made: creator or content analysis, pacing, hooks, retention, style, "watch it like an editor". It adds cuts/min and shot-length stats, a word-timed 0-10 s hook breakdown,
report.mdand a Whisper transcript when there are no captions.
Editor mode is evidence mode plus extras. Every rule below still applies: inspect the actual frames, keep observation apart from inference, and treat pacing numbers as measurements of scene changes, not of quality. Choose by the user's question; if unclear, start with evidence and escalate.
Resolve the source
Use the exact attachment path or verified URL. If pasted or attached transcript content is already available, consume it first; do not make video acquisition a prerequisite to answering. Prefer available native video inspection. If downloading is needed, use supported tools and an authorized source; do not invent paths, bypass access controls or require a paid dependency. For local extraction, probe available ffmpeg/ffprobe first. URL acquisition may use an available yt-dlp installation.
Sample with purpose
Establish duration and the user's question. Combine uniform coverage with scene-change frames when available. Inspect the opening more densely when the hook matters. Contact sheets can reduce image reads, but every relevant sheet must actually be inspected. Preserve timestamps and source identity in the manifest.
A whole-video overview is not proof of every event. Use transcript timestamps and the question to select focused ranges. Zoom individual frames for small text, code, charts, UI or ambiguous details. Use sequential frames or playback before claiming motion or an event between samples.
Audio and captions
Read available captions or transcribe through supported tools. Mark automatic-caption uncertainty. Missing audio does not block visual-only inspection; missing visuals means the answer is transcript-only, not a watch. If a long file fails, try bounded shorter chunks and combine evidence with original-time offsets. Do not repeat a site block or challenge without a new permitted route.
Inspect and answer
- Read media metadata and any extraction manifest.
- Open actual frames or contact sheets, not merely file names or OCR.
- Read available transcript evidence.
- Inspect focused ranges and original-resolution frames where needed.
- Tie important claims to timestamps and label inference.
Never treat generated images as inspected evidence, search excerpts as a transcript, or captions as proof of visible action. Report concrete failed steps and coverage gaps without claiming the whole video was watched.
Reuse and privacy
Reuse existing source media and frames when the exact source and required resolution match. Rerun only relevant ranges when the question changes. Keep private recordings, transcripts and screenshots private. A request to analyze a video does not authorize uploading it elsewhere, publishing extracted assets or sending them to another person.
Done
For a visual watch or editor analysis, the requested source is resolved, relevant actual frames are inspected, available audio or captions are considered, and the answer separates observation from inference with timestamps and sampling limits.
For a transcript-answerable question, a source-grounded TRANSCRIPT ONLY answer is complete even if URL or video extraction failed, as long as visual claims are not invented, unresolved visual details are identified, and the transcript was actually read. A blocked visual tool is not grounds to discard supplied content or defer a usable answer. If neither lane yields content, state UNAVAILABLE and the verified blocker.
Editor mode
Run the helper with --mode editor. It measures every scene change (uncapped), reports shots, cuts per minute, mean and median shot length, and writes pacing.json and report.md. The report's deterministic parts (frontmatter, pacing, transcript, frame list) are filled in; narrative sections (TL;DR, key moments, hook interpretation, style fingerprint, quotable lines, entities, concepts) are marked pending agent fill. Fill them only after inspecting the contact sheets and the hook frames, cite timestamps, label inference, and remove the markers you filled. Leave a marker, or say so, where you lack evidence.
Hook (0-10 s): the dense opening frames are already in the manifest (2 fps, kind hook). Align them to the word timing in the report when present. Name the hook pattern (question, contrarian claim, demo first, in medias res, etc.) as inference.
Transcript: captions win. With no captions, editor mode tries Whisper only if GROQ_API_KEY (preferred) or OPENAI_API_KEY is set in the environment or in ~/.config/watch/.env. This uploads the audio track to that provider, so confirm that the user is fine with it when the video is private. --transcribe local additionally allows a locally installed whisper CLI; --transcribe off never transcribes. Without any of these the run still succeeds, the report says no transcript was available, and the answer must say so. No key is ever required and no paid service is used by default.
Optional export: --export-dir DIR copies report.md and the hero frames into DIR/<title-slug>/ (for example a notes vault) with relative frame links. Nothing is exported unless the flag is given.
Optional extraction helper
The bundled scripts/video_watch.py requires Python 3, ffmpeg/ffprobe and Pillow. URL sources additionally need yt-dlp. Inspect available tools and use permitted environment-local installation where needed; no fixed runtime or remote helper fetch is required. The Markdown workflow also works with equivalent native tools.
python3 video-watch/scripts/video_watch.py /path/to/video.mp4 --max-frames 72
python3 video-watch/scripts/video_watch.py /path/to/video.mp4 --start 02:15 --end 02:45 --out-dir /path/to/new-run
python3 video-watch/scripts/video_watch.py URL --mode editor --intent "why does the hook work"Time arguments accept seconds, MM:SS or HH:MM:SS. The frame count is a configurable sampling budget, not an agent turn limit. The helper samples scene changes, uniform coverage and the first ten seconds at 2 fps, then creates timestamped contact sheets (up to twelve tiles). It emits a manifest, individual frames and source captions when available. Default outputs use a new temporary directory per run. An explicit output directory is caller-owned scratch: rerunning replaces generated frames, sheets and transcript there, so never select a source directory or user-owned output. Keep outputs outside a public checkout.
Read manifest.md and transcript.txt when present, then inspect every relevant contact sheet and zoom needed individual frames. Extraction success is not watching. URL access and captions are source-dependent; local uploaded media has no automatic captions in this helper. Use available audio transcription separately. Clean up only generated scratch after required evidence has been saved.
Attribution
Editor mode adapts MIT-licensed code from the watch skill (claude-watch). See NOTICE for the copyright line and license text. The helper modules are scripts/video_watch.py (entry point), scripts/vw_editor.py (pacing, hook words, report, export) and scripts/vw_whisper.py (optional transcription).
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.

