Extract YouTube Transcript
Fetches plain-text transcripts from YouTube videos using extract_youtube_transcript.py in this skill folder.
Dependency
pip show youtube-transcript-api &>/dev/null || pip install youtube-transcript-api
Quick Start
python extract_youtube_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"
Supported URL formats: youtube.com/watch?v=, youtu.be/, /embed/, /live/, /shorts/, or a raw 11-char video ID.
Common Patterns
Fetch with preferred language(s)
python extract_youtube_transcript.py "URL" --lang zh-Hant en
Pass languages in priority order. Falls back to any available transcript if none match.
Save transcript to file
python extract_youtube_transcript.py "URL" --output transcript.txt
Text is printed to stdout and also written to the file.
List available languages first
python extract_youtube_transcript.py "URL" --list-langs
Use this to discover what language codes are available before fetching.
Language Codes
| Code | Language |
|---|---|
en | English |
zh-Hant | Traditional Chinese |
zh-Hans | Simplified Chinese |
ja | Japanese |
ko | Korean |
es | Spanish |
Error Handling
| Error | Cause | Recovery |
|---|---|---|
TranscriptsDisabled | Owner disabled captions | No transcript available |
NoTranscriptFound | Requested lang not found | Run --list-langs, pick an available code |
VideoUnavailable | Video is private/deleted | Verify the URL |
AgeRestricted | Age-gated video | Auth not supported; no workaround |
InvalidVideoId | Malformed URL or ID | Check the URL format |
Workflow
- Try a direct fetch first
- If
NoTranscriptFound, run--list-langsto see available codes, then re-fetch with--lang <code> - Save long transcripts to a file with
--outputfor easier downstream processing