asking-with-evidence
The user asks a question about a video that was already watched or indexed — "what did they say about X", "what error code…
The user shared a video URL, a YouTube/TikTok/stream link, a local video file, a screen recording, a meeting recording, or a playlist/folder of videos — "watch this", "summarize this video", "what's in this recording". Use this to actually watch the video — download, extract
$ npx -y skills add oxbshw/watch-skill --skill watching-videos --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/watching-videosContext preview
The summary Claude sees to decide when to auto-load this skill.
The user shared a video URL, a YouTube/TikTok/stream link, a local video file, a screen recording, a meeting recording, or a playlist/folder of videos — "watch this", "summarize this video", "what's in this recording". Use this to actually watch the video — download, extract
name: watching-videos version: "1.4.3" description: The user shared a video URL, a YouTube/TikTok/stream link, a local video file, a screen recording, a meeting recording, or a playlist/folder of videos — "watch this", "summarize this video", "what's in this recording". Use this to actually watch the video — download, extract frames, OCR, transcribe, and index it — instead of guessing from the title or asking the user to describe it. license: MIT user-invocable: true allowed-tools: Bash, Read
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.
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>"
watch-skill watch "<url-or-path>" [--start T --end T] [--max-frames N] [--transcript-only]
manifests (`--duration 60` bounds live streams), and local files.
`--start`/`--end` for dense sampling of that window.
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
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.
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.
Give AI agents eyes, ears, and verifiable results. Watch Skill turns video, audio and screen activity into searchable, timestamped evidence, and answers did that actually work? with a deterministic contract rather than a model's opinion.
The user asks a question about a video that was already watched or indexed — "what did they say about X", "what error code…
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter",…
The user wants structure pulled out of a watched video — "make chapters for this video", "where does the bug appear in this…
The user corrected an answer about a video — "no, it actually says X", "that's the wrong timestamp", "you misread the error code"…
A Watch Skill command failed, video download broke, ffmpeg or yt-dlp is missing, a provider returned an error, local vision…
The user wants to share or hand off what was found in a video — "send this analysis to my team", "make a page I can share",…