Agent skill · creative production · bradautomates
watch
Watch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
Why this skill is useful
Adds a Python script that automates video processing, including downloading, frame extraction, and transcript generation, which the AI cannot do on its own.
What it needs
Requires ffmpeg, yt-dlp installed locally. Requires whisper account access. About 12k tokens when loaded. Last updated 2026-07-01. 14,305 stars on the source repository.
What this skill does
/watch You don't have a video input; this skill gives you one. A Python script gets captions first, optionally downloads the video, extracts frames as JPEGs (scene-aware, or fast keyframes at efficient detail), gets a timestamped transcript (native captions first, then Whisper API as fallback), and prints frame paths. You then Read each frame path to see the images and combine them with the transcript to answer the user. Resolve SKILLDIR (do this before any command) Every python3 ... command below runs a bundled script under SKILLDIR/scripts/. Set SKILLDIR to the absolute path of the directory containing THIS SKILL.md you just Read — your harness told you that path in the Read result. The scripts are always a direct sibling of this file (SKILLDIR/scripts/watch.py), in every install layout: Substitute that literal path for ${SKILLDIR} in every command. This works on every harness (Claude Code, Codex, Cursor, Gemini CLI, …) without relying on any harness-specific environment variable. Guard once at the start of a run: Step 0 — Setup preflight (runs every /watch invocation, silent on success) Python interpreter: every python3 ... command in this skill is for macOS/Linux. On Windows, substitute python — the python3 command on Windows is the Microsoft Store stub and will not run the script. On the first /watch invocation in a session, use structured preflight so you can detect first-run setup: Branch on two fields: canproceed: true and firstrun: false → setup is already done (the user may have deliberately skipped a Whisper key — that's allowed). Proceed to Step 1 without comment. firstrun: true → genuine first-time setup. Do these in order: 1. If missingbinaries is non-empty, run the installer first (it auto-installs on macOS / prints commands elsewhere — see below) and confirm the binaries land. Do not skip this and jump to preferences. 2. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills bradautomates/watch