← ClaudeAtlas

video-watchlisted

Transcribe YouTube videos and podcast episodes in high quality (Whisper via a configurable API endpoint) and distill compact findings with timestamps. Use whenever the user wants a video "watched", summarized, transcribed or analyzed, drops a YouTube or podcast URL together with a question, asks "what does he say about X in that video", or follows up on an earlier video folder, even when the word "transcribe" never appears. For visual questions, frames can be extracted on top. NOT for local audio files (voice memos, recordings); that is the audio-transcribe skill.
belschak/video-watch · ★ 1 · Data & Documents · score 69
Install: claude install-skill belschak/video-watch
# video-watch Video -> Whisper transcript -> findings. The script handles download, conversion, transcription and retention on its own; your job is steps 2 and 3. **Setup (once):** copy `.env.example` (repo root) to `.env` in the repo root or in this skill folder (both locations are read) and set `WHISPER_API_URL` (plus `WHISPER_API_KEY` for hosted APIs). Groq, OpenAI and self-hosted servers all work; the endpoint just has to accept OpenAI-style `audio/transcriptions` requests. `yt-dlp` and `ffmpeg` must be on PATH (if they were installed seconds ago, refresh PATH or restart the shell first). ## Workflow 1. **Transcribe** (run from the workspace root; a `video-watch/` folder appears there): ``` python3 <skill-path>/scripts/video-watch.py "<url>" [--frames] [--vocab "Term1, Term2"] ``` - `--vocab`: proper nouns and jargon likely to occur in the video (derive from title and topic, e.g. product names). Improves Whisper accuracy noticeably. - `--frames`: only when visual questions are on the table or the user wants images (downloads the video on top of the audio). Frames are spread **smartly over the full runtime**: transcript pointer cues first ("look at this", "as you can see"), then even time coverage, so the second half of the video is represented too. A dedup pass (on by default) drops near-identical frames (talking head, held slide); `index.md` maps each frame to its timestamp and source. `--no-dedup` keeps everything. - **Never run two videos with `--