Loading...
Loading...
Absorb the knowledge in YouTube videos — find them, transcribe them with ElevenLabs Scribe v2, inspect their visuals, and digest what they actually teach. Use this whenever someone wants a video's content as text or knowledge rather than just a link — "transcribe this YouTube video", "what does this video say", "summarize/explain this talk", "pull the transcript", "get subtitles", "turn this lecture into notes", or research-style asks like "find 10-20 videos about <topic> and tell me everything", "research <topic> on YouTube", "what are people saying about <X>". Also use it when a question needs what is shown on screen (slides, charts, code, UI, product) and not only what is said — it extracts frames and, as a last resort, asks Google Gemini to describe the video. Works on any yt-dlp-supported URL. Trigger it even when the words "transcribe" or "skill" never appear but the goal is to learn from video.
npx skill4agent add marks97/youtube-transcribe youtube-transcribeS=.claude/skills/youtube-transcribe/scripts
bash "$S/setup.sh" # creates a venv, installs yt-dlp + elevenlabs + google-genai (idempotent)python3-venvsudo apt-get install -y python3-venvELEVENLABS_API_KEYGEMINI_API_KEYscripts/load-keys.local.shS=.claude/skills/youtube-transcribe/scripts
OUT=/tmp/claude/youtube-transcribe/<video-id> # scratch; never a repo
bash "$S/download.sh" "<url>" "$OUT" audio # audio.mp3 + metadata.json
bash "$S/transcribe.sh" "$OUT/audio.mp3" "$OUT" # transcript.txt + .diarized.txt + .jsontranscript.diarized.txttranscribe.sh--no-diarize--lang spa--keyterms "Kubernetes,PyTorch,yt-dlp"S=.claude/skills/youtube-transcribe/scripts
# 1. Find candidates — pick the good ones by title/channel/duration before spending transcription on them.
bash "$S/search.sh" "quantitative trading with LLMs" 20 # id | duration | channel | title
bash "$S/search.sh" "quantitative trading with LLMs" 20 --date # sort by newest instead of relevance
# 2. Transcribe the chosen ones in one go (each lands in <OUT>/<video-id>/).
bash "$S/search.sh" "quantitative trading with LLMs" 20 --urls > /tmp/urls.txt
# ...edit /tmp/urls.txt down to the 10-15 worth watching, then:
bash "$S/batch.sh" /tmp/claude/youtube-transcribe/topic /tmp/urls.txtbash "$S/download.sh" "<url>" "$OUT" video # video.mp4 (≤720p)
bash "$S/frames.sh" "$OUT/video.mp4" "$OUT/frames" every 30 # one frame / 30s
bash "$S/frames.sh" "$OUT/video.mp4" "$OUT/frames" at 00:01:20,00:04:05 # exact moments from the transcripttranscript.diarized.txtbash "$S/ask-gemini.sh" "<url-or-local-mp4>" "What indicators are shown on the chart at minute 4, and what are their values?"[mm:ss]transcript.txt| Script | Does |
|---|---|
| Create the venv, install deps (idempotent) |
| Find videos for a topic — free, no API key |
| yt-dlp audio (mp3) and/or video (≤720p) + metadata.json |
| ElevenLabs Scribe v2 → text + diarized + raw json |
| Download+transcribe many; one folder per video + manifest |
| Extract stills to Read |
| Gemini visual understanding (fallback) |
/tmp/claude/youtube-transcribe/…yt-dlp --cookies-from-browser--cookies