← ClaudeAtlas

yt-video-analyzerlisted

Analyse a YouTube video — download subtitles and video, build a timestamp map, cut screenshots at the right moments, and assemble a markdown digest with images. Use ALWAYS when the user drops a YouTube link and asks to "watch", "analyse", "break down", "summarise", "extract techniques", "take screenshots", "what tools are in this video", "walk me through this tutorial" — even if the word "video" never appears and only a youtube.com or youtu.be link arrives. Russian phrasings trigger it too ("разбери видео", "законспектируй ролик", "что за инструменты в видео", "сделай скриншоты"). Tuned for tutorials about editing, software and interfaces, where catching the moment a tool is shown is what matters.
Auxlife32/yt-video-analyzer · ★ 1 · Data & Documents · score 72
Install: claude install-skill Auxlife32/yt-video-analyzer
# YouTube Video Analyzer Turns a video into a digest with timestamps and screenshots. ## Dependencies ```bash yt-dlp --version || brew install yt-dlp ffmpeg -version || brew install ffmpeg # or apt install ffmpeg ``` Tested with yt-dlp 2026.08.19 and ffmpeg 8.0.1. The scripts are plain Python — no third-party packages, no virtualenv. For videos without subtitles `whisper` is useful (optional). Level 4, "the model actually watches", needs `OPENROUTER_API_KEY`. The script looks for it in the environment, then in `.env` — in the current directory, next to the skill, or in `~/.config/yt-video-analyzer/.env`. Get a key at openrouter.ai/keys. No other step needs a key at all. ## Pipeline ### 1. Metadata + subtitles ```bash python scripts/fetch.py "<URL>" --workdir ./_yt ``` Writes to `_yt/<video_id>/`: `meta.json`, `subs.srt`, `chapters.json`. If there are no auto-subtitles, the script can run whisper (`--whisper`). **Read `subs.srt` in full.** It is cheaper than any video and carries 80% of the meaning. ### 2. Decide where to cut frames Two sources of timestamps — use both: - **From subtitles.** Look for marker phrases: "right here", "we click", "let's open", "this setting", "that checkbox", "parameter", names of panels and effects. Every such spot is a screenshot candidate. Add +1.5 s to the caption timestamp — what's on screen always lags behind speech. - **From scene changes.** `python scripts/frames.py <dir> --scenes` returns the list of cuts. Useful w