Watch
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
When the user wants to read, transcribe, summarize, or research a video — YouTube link, podcast clip, Loom, TikTok, X/Twitter video, local file, or any URL yt-dlp supports.
$ npx skills add TheCraigHewitt/skills --skill watch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheCraigHewitt/skills watch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/general/watch .claude/skills/watch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "watch" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/general/watch into .claude/skills/watch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TheCraigHewitt/skills/tree/main/general/watchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TheCraigHewitt/skills --skill watch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheCraigHewitt/skills watch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/general/watch .agents/skills/watch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "watch" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/general/watch into .agents/skills/watch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheCraigHewitt/skills --skill watch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheCraigHewitt/skills watch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/general/watch .cursor/skills/watch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "watch" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/general/watch into .cursor/skills/watch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TheCraigHewitt/skills.git --path general/watch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TheCraigHewitt/skills --skill watch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheCraigHewitt/skills watch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/general/watch .gemini/skills/watch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "watch" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/general/watch into .gemini/skills/watch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TheCraigHewitt/skills watchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TheCraigHewitt/skills --skill watch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/general/watch .github/skills/watch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "watch" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/general/watch into .github/skills/watch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheCraigHewitt/skills --skill watch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheCraigHewitt/skills watch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/general/watch .opencode/skills/watch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "watch" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/general/watch into .opencode/skills/watch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "watch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
watchWhen the user wants to read, transcribe, summarize, or research a video — YouTube link, podcast clip, Loom, TikTok, X/Twitter video, local file, or any URL yt-dlp supports.
Watch is an agent skill from TheCraigHewitt/skills. When the user wants to read, transcribe, summarize, or research a video — YouTube link, podcast clip, Loom, TikTok, X/Twitter video, local file, or any URL yt-dlp supports. Use when they paste a video URL, say 'transcribe this,' 'summarize this video,' 'what does this video say about X,' 'pull the transcript,' 'analyze this YouTube video,' or hand you a video for content research. Default is fast transcript-only (no video download). Pass --with-frames when the visual layer matters (UI bugs, on-screen text, visual…
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `watch.py`).
It sits in Media & Creative, covering Transcription and Speech recognition and synthesis. It works with YouTube, TikTok, X (Twitter) and FFmpeg. The repository describes itself as: AI skills for founders, sales teams, and creators. 47 skills across CEO, Sales, YouTube, and General categories. Works with Claude Code, Cursor, Codex, and any agent that reads… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fdbf39b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3brewwingetpipxaptFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
youtu.beFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GROQ_API_KEYOPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Watch loads about 1.6k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 769 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
` + `ffprobe` — `brew install ffmpeg` / `sudo apt install ffmpeg` / `winget install Gyan.FFmpeg`. Only required for `--wcript reads env vars or `~/.config/watch/.env`):to stdout. They live in `~/.config/watch/.env` (mode 0600).Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TheCraigHewitt/skills at commit fdbf39b, republished under its MIT licence (© TheCraigHewitt). 769 words, ~1,614 tokens.
.claude/skills/watch/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You don't have a video input. This skill bundles a Python script that fetches the timestamped transcript (and optionally frames) so you can answer questions about video content.
Default mode is transcript-only. No video download, no frame extraction — just captions pulled via yt-dlp in a few seconds. That covers ~every YouTube video and is the right default for research, summarization, and content analysis.
Opt into --with-frames only when the visual layer matters: debugging a screen recording, breaking down a thumbnail/hook visually, reading on-screen text, analyzing UI behavior.
Locally installed:
yt-dlp — brew install yt-dlp (macOS) / pipx install yt-dlp (Linux) / winget install yt-dlp.yt-dlp (Windows)ffmpeg + ffprobe — brew install ffmpeg / sudo apt install ffmpeg / winget install Gyan.FFmpeg. Only required for --with-frames and the Whisper audio fallback. Transcript-only on a captioned YouTube video does not need ffmpeg.If the user's missing one, tell them the install command and stop. Do not auto-install.
The script lives next to this SKILL.md. Invoke it with the absolute path or ${CLAUDE_SKILL_DIR}/watch.py:
python3 "${CLAUDE_SKILL_DIR}/watch.py" "<url-or-path>"If ${CLAUDE_SKILL_DIR} isn't set in this agent, resolve the path yourself — it's the directory holding this SKILL.md file.
python3 "${CLAUDE_SKILL_DIR}/watch.py" "https://youtu.be/abc123"Returns a markdown report with title, channel, duration, and a timestamped transcript like:
[00:01] All right, so here we are, in front of the elephants
[00:05] the cool thing about these guys is that they have really...python3 "${CLAUDE_SKILL_DIR}/watch.py" "<url>" --with-framesReturns frame paths + transcript. Read each frame path in parallel with the Read tool so you see the full chronological visual flow alongside the transcript.
python3 "${CLAUDE_SKILL_DIR}/watch.py" "<url>" --start 1:30 --end 2:00Works in both modes. Times accept SS, MM:SS, or HH:MM:SS. In transcript-only mode it filters the transcript. In --with-frames mode it also limits frame extraction and switches to a denser frame budget.
| Flag | Purpose |
|---|---|
--no-whisper | Don't fall back to Whisper if captions are missing. Fail with a clear error instead. |
--whisper groq|openai | Force a Whisper backend. Default: prefer Groq, fall back to OpenAI. |
--max-frames N | (frames mode) Cap on frame count. Default 80, hard max 100. |
--resolution W | (frames mode) Frame width in px. Default 512. Bump to 1024 only if reading on-screen text matters. |
--fps F | (frames mode) Override auto-fps (clamped to 2 fps). |
--out-dir DIR | Keep working files somewhere specific (default: tmp). |
--json | (transcript mode) Emit machine-readable JSON instead of markdown. |
If a video has no captions (rare for YouTube, common for Loom / Instagram / local files) and you didn't pass --no-whisper, the script will:
--with-frames)whisper-large-v3 (preferred — cheap, fast) or OpenAI's whisper-1[MM:SS] timestamped formatTo enable Whisper, set one of these (script reads env vars or ~/.config/watch/.env):
GROQ_API_KEY=... # console.groq.com/keys
OPENAI_API_KEY=... # platform.openai.com/api-keysIf neither key is set and captions are missing, the script exits 2 with a clear message — tell the user how to enable Whisper or that this particular video can't be transcribed.
Transcript-only (default). The script prints a self-contained markdown report. Quote timestamps when citing claims. Don't re-print the full transcript back to the user — summarize, extract, or answer their question.
--with-frames. Same report plus a list of frame paths. After running:
The script prints a working directory. If the user isn't going to ask follow-ups about this video, rm -rf <dir> when you're done. Otherwise leave it in place — re-runs can reuse it via --out-dir.
Hook deconstruction. python3 watch.py "<url>" --start 0 --end 15 --with-frames → analyze cold open: words said, what's on screen, pattern interrupt timing.
Channel research. Run transcript-only on 5-10 competitor videos. Compare structure, topic mix, CTA placement, transcript length-to-duration ratio.
Quote extraction. Transcript-only + grep for a topic in the report (use Bash on the printed work dir).
UI bug repro. --with-frames on a screen recording, then ask which frame the bug appears. Frames mode shines here.
--with-frames for pure-text research. It downloads the full video and burns image tokens for no benefit.~/.config/watch/.env (mode 0600).The script runs yt-dlp and ffmpeg locally — no third-party server in the middle. Audio only leaves the machine when Whisper is needed AND a key is configured (Groq or OpenAI endpoint, whichever matches). The video itself never gets uploaded.
Inspect watch.py before first run if you want to verify.
© TheCraigHewitt, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in general/watch of TheCraigHewitt/skills.
Open the folder on GitHubat commit fdbf39b
Watch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Watch this skillTheCraigHewitt/skills | 157 | — | ~1.6k | Automated safety check: Notes | MIT | |
| Watchmathiaschu/watch | 142 | — | ~4k | Automated safety check: Warn | MIT | |
| Lecture To Notesysyecust/lecture-to-notes | 273 | — | ~14k | Automated safety check: Notes | Custom licence | |
| Video Transcribewendy7756/AI-Video-Transcriber | 3.3k | — | ~937 | Automated safety check: Notes | Apache-2.0 | |
| Ffmpeg Skillkajisho5/ffmpeg-skill | 1.9k | — | ~7.4k | Automated safety check: Pass | MIT | |
| Claude Real VideoHUANGCHIHHUNGLeo/claude-real-video | 2.2k | — | ~639 | Automated safety check: Pass | MIT |
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
ysyecust/lecture-to-notes
A skill your agent uses when users provide YouTube, Bilibili, or X/Twitter lecture URLs and want reader-first Chinese LaTeX/PDF notes with source-faithful claims, fluent authored prose, and verified…
wendy7756/AI-Video-Transcriber
Transcribe and summarize a video or podcast from a URL (YouTube, TikTok, Bilibili, Apple Podcasts, SoundCloud, 30+ platforms) or from a local media/.txt file.
kajisho5/ffmpeg-skill
Edit video and audio with local FFmpeg from natural-language requests: cut, trim, join, resize/reframe (9:16, 1:1), speed change, captions and subtitles (SRT/ASS, animated, karaoke), logos and text…
HUANGCHIHHUNGLeo/claude-real-video
Watch a video for the user. An agent skill from HUANGCHIHHUNGLeo/claude-real-video.
linzzzzzz/openclip
Processes videos to identify engaging moments, generate transcripts, and create highlight clips with artistic titles and custom cover images.
TheCraigHewitt/skills
Turns a piece of Craig's content (an email, a YouTube script, an essay, or pasted text) into a polished image carousel publishable to both LinkedIn and Instagram from one set of 1080x1350 slides.
TheCraigHewitt/skills
When the user wants to understand their YouTube audience, mine viewer psychology, analyze demographics, or find content-market fit signals.
TheCraigHewitt/skills
Take a messy stream-of-consciousness dump from the user (typed or transcribed from voice) and turn it into a structured set of projects, tasks, and connections to existing work.
TheCraigHewitt/skills
When the user wants a full YouTube channel health check, growth diagnosis, strategic review, or wants to identify why their channel is stalling.
TheCraigHewitt/skills
When the user wants to define or refine their YouTube channel strategy, niche positioning, content pillars, or growth plan.
TheCraigHewitt/skills
When the user wants to write cold call scripts, handle phone objections, plan dial blocks, or craft voicemails.
Works with
Categories
When the user wants to read, transcribe, summarize, or research a video — YouTube link, podcast clip, Loom, TikTok, X/Twitter video, local file, or any URL yt-dlp supports. Watch is an agent skill from TheCraigHewitt/skills. When the user wants to read, transcribe, summarize, or research a video — YouTube link, podcast clip, Loom, TikTok, X/Twitter video, local file, or any URL yt-dlp supports.
Watch fits situations like: research a video — YouTube link; X/Twitter video; any URL yt-dlp supports; they paste a video URL.
Run `npx skills add TheCraigHewitt/skills --skill watch -a claude-code`. Or copy the skill folder (general/watch in TheCraigHewitt/skills) into .claude/skills/watch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TheCraigHewitt/skills --skill watch -a codex`. Or copy the skill folder (general/watch in TheCraigHewitt/skills) into .agents/skills/watch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheCraigHewitt/skills --skill watch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/watch, .gemini/skills/watch, .github/skills/watch and .opencode/skills/watch in your project.
Going by SKILL.md and its folder, Watch needs Python for the scripts in its folder, the command-line tools its instructions call (python3, brew, winget, pipx and apt) and credentials named GROQ_API_KEY and OPENAI_API_KEY. Our summary lists: Python 3; A credential in GROQ_API_KEY; A credential in OPENAI_API_KEY.
SKILL.md names 1 domain. In commands or code: youtu.be; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo; mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Watch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Watch: Watch (mathiaschu/watch, 142 stars), Lecture To Notes (ysyecust/lecture-to-notes, 273 stars), Video Transcribe (wendy7756/AI-Video-Transcriber, 3.3k stars) and Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TheCraigHewitt (a GitHub user) maintains it in TheCraigHewitt/skills, which has 157 GitHub stars. The repository holds 65 skills in this directory. The repository was last updated on May 22, 2026.
Source: TheCraigHewitt/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.