Watch
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
Install and use crv (claude-real-video) — a tool that lets any AI agent watch videos by extracting scene-aware keyframes, deduplicating them, and transcribing audio.
$ npx skills add HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HUANGCHIHHUNGLeo/claude-real-video claude-real-video-for-agents --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/HUANGCHIHHUNGLeo/claude-real-video.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/claude-real-video-for-agents .claude/skills/claude-real-video-for-agents && 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 "claude-real-video-for-agents" agent skill from https://github.com/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agents into .claude/skills/claude-real-video-for-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-real-video-for-agents", 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/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agentsType 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 HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HUANGCHIHHUNGLeo/claude-real-video claude-real-video-for-agents --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HUANGCHIHHUNGLeo/claude-real-video.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/claude-real-video-for-agents .agents/skills/claude-real-video-for-agents && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "claude-real-video-for-agents" agent skill from https://github.com/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agents into .agents/skills/claude-real-video-for-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-real-video-for-agents", 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 HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HUANGCHIHHUNGLeo/claude-real-video claude-real-video-for-agents --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HUANGCHIHHUNGLeo/claude-real-video.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/claude-real-video-for-agents .cursor/skills/claude-real-video-for-agents && 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 "claude-real-video-for-agents" agent skill from https://github.com/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agents into .cursor/skills/claude-real-video-for-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-real-video-for-agents", 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/HUANGCHIHHUNGLeo/claude-real-video.git --path skills/claude-real-video-for-agents--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 HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HUANGCHIHHUNGLeo/claude-real-video claude-real-video-for-agents --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HUANGCHIHHUNGLeo/claude-real-video.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/claude-real-video-for-agents .gemini/skills/claude-real-video-for-agents && 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 "claude-real-video-for-agents" agent skill from https://github.com/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agents into .gemini/skills/claude-real-video-for-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-real-video-for-agents", 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 HUANGCHIHHUNGLeo/claude-real-video claude-real-video-for-agentsInstalls 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 HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HUANGCHIHHUNGLeo/claude-real-video.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/claude-real-video-for-agents .github/skills/claude-real-video-for-agents && 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 "claude-real-video-for-agents" agent skill from https://github.com/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agents into .github/skills/claude-real-video-for-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-real-video-for-agents", 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 HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HUANGCHIHHUNGLeo/claude-real-video claude-real-video-for-agents --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HUANGCHIHHUNGLeo/claude-real-video.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/claude-real-video-for-agents .opencode/skills/claude-real-video-for-agents && 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 "claude-real-video-for-agents" agent skill from https://github.com/HUANGCHIHHUNGLeo/claude-real-video/tree/master/skills/claude-real-video-for-agents into .opencode/skills/claude-real-video-for-agents/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "claude-real-video-for-agents", 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.
claude-real-video-for-agentsInstall and use crv (claude-real-video) — a tool that lets any AI agent watch videos by extracting scene-aware keyframes, deduplicating them, and transcribing audio.
Claude Real Video For Agents is an agent skill from HUANGCHIHHUNGLeo/claude-real-video. Install and use crv (claude-real-video) — a tool that lets any AI agent watch videos by extracting scene-aware keyframes, deduplicating them, and transcribing audio. Use when the user shares a video URL or file and wants it analyzed, summarized, or discussed.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Transcription and Speech recognition and synthesis. It works with Python and FFmpeg. The repository describes itself as: Let Claude (or any LLM) actually watch a video — scene-aware, deduplicated frames + transcript, from a URL or local file. Runs locally, MIT. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ab4b9b2. 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.
Shell commands in SKILL.md call:
pipbrewaptwingetffmpegbashFrom 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.beyoutube.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Claude Real Video For Agents loads about 2k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 761 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.
sudo apt install ffmpegAutomated 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 HUANGCHIHHUNGLeo/claude-real-video at commit ab4b9b2, republished under its MIT licence (© HUANGCHIHHUNGLeo). 761 words, ~1,995 tokens.
.claude/skills/claude-real-video-for-agents/SKILL.md (or your agent's skills folder).crv (claude-real-video) is a CLI tool that extracts meaningful frames and transcripts from videos so AI agents can "see" and "read" them. It uses scene-change detection (not fixed-interval sampling), sliding-window deduplication, and optional Whisper transcription.
Key advantage: Same 58-second clip at fixed 1fps = 58 frames. crv keeps the 26 that actually differ, and --grid packs them into 3 contact sheets. Fewer tokens, nothing missed.
# macOS
brew install ffmpeg
# Linux
sudo apt install ffmpeg
# Windows
winget install Gyan.FFmpeg# Recommended: with audio transcription support
pip install "claude-real-video[whisper]"
# Core only (frames + dedup)
pip install claude-real-videoThe [whisper] extra never installs itself — without it there is no speech-to-text
(videos that ship their own subtitles still get a transcript).
crv --help
ffmpeg -versionRun the bundled installer to symlink this skill into all detected agent platforms:
bash install-skill.shOr manually copy to your agent's skill directory:
# Claude Code
cp -r skills/claude-real-video-for-agents ~/.claude/skills/
# Codex
cp -r skills/claude-real-video-for-agents ~/.codex/skills/
# OpenCode
cp -r skills/claude-real-video-for-agents ~/.opencode/skills/
# Gemini CLI
cp -r skills/claude-real-video-for-agents ~/.gemini/skills/crv "https://www.youtube.com/watch?v=VIDEO_ID"Output in crv-out/:
frames/ — deduplicated keyframestranscript.txt — plain-text transcriptMANIFEST.txt — summary for LLM consumptioncrv "https://youtu.be/VIDEO_ID" -o crv-out --grid --why "what the user wants to know"--grid — tiles frames into 3x3 contact sheets (cuts image count ~9x)--why — focuses the analysis on a specific questioncrv lecture.mp4 -o out --lang encrv clip.mp4 --no-transcribecrv "https://..." --cookies cookies.txt
crv "https://..." --cookies-from-browser chromecrv tutorial.mp4 --adaptivecrv "https://youtu.be/..." --why "pricing strategy" --kb ~/notescrv video.mp4 --viewer
# Opens viewer.html — video + keyframes + transcript, fully offlineWhen a user shares a video (URL or file path):
Run crv with --grid and --why:
crv "<url-or-path>" -o crv-out --grid --why "<user's question>"For long videos, cap frames: --max-frames 60
Use one output folder per video (e.g. -o crv-out/<slug>). A folder that
already holds an analysis is refused; pass --overwrite to replace it.
Read MANIFEST.txt first — it summarizes the run (frame counts, frames dir) and includes the transcript. Frames are named in chronological order; per-segment transcript timings live in transcript.json when available (there are no per-frame timestamps).
Read contact sheets in crv-out/grids/ (each is a 3x3 sequence of consecutive keyframes, chronological). Only read individual crv-out/frames/*.jpg when you need a close-up.
Answer the user's question, citing transcript timings (from transcript.json) where available.
| Flag | Default | Description |
|---|---|---|
source (positional) | — | Video URL or local file path |
-o, --out | crv-out | Output directory |
--overwrite | off | Replace a previous analysis living in the output directory (without this, a non-empty output dir is refused to avoid mixing videos) |
--scene | 0.30 | Scene-change sensitivity (0-1, lower = more frames) |
--fps-floor | 1.0 | Guarantee at least one frame every N seconds |
--max-frames | 150 | Hard cap on total frames |
--adaptive | off | Adaptive scene detection for slow-changing content |
--text-anchors | off | Force frames at subtitle-cue timestamps — needs a sidecar .srt/.vtt or embedded subtitle track (burned-in captions can't be detected) |
--lang | auto | Whisper language (en, zh, auto, etc.) |
--cookies | — | Netscape cookie file for login-gated sources |
--cookies-from-browser | — | Read cookies from browser (chrome, safari, firefox, edge) |
--no-transcribe | off | Skip audio transcription |
--viewer | off | Write a local viewer.html |
--whisper-model | base | Whisper model size (tiny, base, small, medium, large, turbo — turbo: near large-v2 accuracy, ~8x faster) |
--dedup-threshold | 8 | % of pixels that must change for a new frame (higher = fewer frames kept) |
--dedup-window | 4 | Compare against last N kept frames (1 = consecutive-only) |
--report | off | Keep dropped frames + write report.html |
--why | — | Viewing intent, e.g. --why "find the pricing strategy" — focuses the model's analysis |
--grid | off | Tile frames into 3x3 contact sheets |
--kb | — | Save as dated markdown note to knowledge-base folder |
--keep-audio | off | Save full soundtrack as audio.m4a (for Gemini, GPT-4o, etc.) |
from claude_real_video import process
result = process("https://youtu.be/...", "out", lang="en")
print(result.frame_count, result.transcript_path)crv-out/
├── MANIFEST.txt # Summary for the LLM
├── frames/ # Deduplicated keyframes
├── transcript.txt # Plain-text transcript
├── grids/ # 3x3 contact sheets (with --grid)
├── audio.m4a # Full soundtrack (with --keep-audio)
├── viewer.html # Local viewer (with --viewer)
├── report.html # Dedup report (with --report)
└── dropped/ # Dropped frames (with --report)--grid — it dramatically reduces token usage while preserving visual continuity.--why — it focuses the analysis on what the user actually cares about.--max-frames 60 for long videos (>10 min) to stay within context limits.--no-transcribe when the user only cares about visuals (thumbnails, UI, slides).--keep-audio when the user asks about music, tone, or sound effects.--adaptive for screencasts, tutorials, or slow-moving content.MANIFEST.txt before frames — it has the run summary and the transcript.transcript.json when it exists (e.g., "At 0:42, the presenter says..."); frames themselves carry order, not timestamps.--overwrite to replace it.--cookies option is for your own authorized access.© HUANGCHIHHUNGLeo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/claude-real-video-for-agents of HUANGCHIHHUNGLeo/claude-real-video.
Open the folder on GitHubat commit ab4b9b2
Claude Real Video For Agents 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 |
|---|---|---|---|---|---|---|
| Claude Real Video For Agents this skillHUANGCHIHHUNGLeo/claude-real-video | 2.2k | — | ~2k | Automated safety check: Notes | MIT | |
| Watchmathiaschu/watch | 142 | — | ~4k | Automated safety check: Warn | MIT | |
| Watch Video Q&Abradautomates/claude-video | 18k | — | ~4.3k | Automated safety check: Notes | MIT | |
| Ffmpeg Skillkajisho5/ffmpeg-skill | 1.9k | — | ~7.4k | Automated safety check: Pass | MIT | |
| Cassette Video EditCassette-Editor/oh-my-cassette | 119 | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Video To NotesKIRVO-REPORTING/video-to-notes | 105 | — | ~1.5k | 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).
bradautomates/claude-video
Lets the agent answer questions about a video from a URL or local file by downloading it, extracting frames and a transcript, or by sending it to Gemini's video model.
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…
Cassette-Editor/oh-my-cassette
Edit, trim, cut, caption, subtitle, reframe, combine, add background music to, or export video, audio, and image files through Cassette.
KIRVO-REPORTING/video-to-notes
Use immediately for any bare YouTube or YouTube Shorts URL, youtu.be link, Bilibili or b23.tv link, or other video URL; do not ask what the user wants.
znyupup/ai-video-editing-skill
AI Agent自动剪辑旅行Vlog的完整工作流。从原始素材到成品视频,系统级只需ffmpeg,其余在Python venv内完成。by nyx研究所 (GitHub @znyupup · B站/小红书 @nyx研究所)
HUANGCHIHHUNGLeo/claude-real-video
Watch a video for the user. An agent skill from HUANGCHIHHUNGLeo/claude-real-video.
HUANGCHIHHUNGLeo/claude-real-video
幫 Leo 看影片。當 Leo 丟影片連結(YouTube/IG/TikTok)或本機影片檔,要摘要、分析、拆解對標時使用——Claude 不能直接吃影片,先用這個工具抽關鍵幀+逐字稿+運鏡節奏+聲音/語氣/手勢時間軸再讀。
Categories
Install and use crv (claude-real-video) — a tool that lets any AI agent watch videos by extracting scene-aware keyframes, deduplicating them, and transcribing audio. Claude Real Video For Agents is an agent skill from HUANGCHIHHUNGLeo/claude-real-video. Install and use crv (claude-real-video) — a tool that lets any AI agent watch videos by extracting scene-aware keyframes, deduplicating them, and transcribing audio.
Claude Real Video For Agents fits situations like: the user shares a video URL; file and wants it analyzed.
Run `npx skills add HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a claude-code`. Or copy the skill folder (skills/claude-real-video-for-agents in HUANGCHIHHUNGLeo/claude-real-video) into .claude/skills/claude-real-video-for-agents in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a codex`. Or copy the skill folder (skills/claude-real-video-for-agents in HUANGCHIHHUNGLeo/claude-real-video) into .agents/skills/claude-real-video-for-agents 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 HUANGCHIHHUNGLeo/claude-real-video --skill claude-real-video-for-agents -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/claude-real-video-for-agents, .gemini/skills/claude-real-video-for-agents, .github/skills/claude-real-video-for-agents and .opencode/skills/claude-real-video-for-agents in your project.
Going by SKILL.md and its folder, Claude Real Video For Agents needs the command-line tools its instructions call (pip, brew, apt, winget, ffmpeg and bash). Our summary lists: Python 3.
SKILL.md names 2 domains. In commands or code: youtu.be and youtube.com; the agent is likely to contact these 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), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Claude Real Video For Agents is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8k 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 Claude Real Video For Agents: Watch (mathiaschu/watch, 142 stars), Watch Video Q&A (bradautomates/claude-video, 18k stars), Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars) and Cassette Video Edit (Cassette-Editor/oh-my-cassette, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HUANGCHIHHUNGLeo (a GitHub user) maintains it in HUANGCHIHHUNGLeo/claude-real-video, which has 2,209 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 8, 2026.
Source: HUANGCHIHHUNGLeo/claude-real-video on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.