YouTube Transcript Extraction
Use the bundled scripts/transcribe_youtube.py wrapper for the primary workflow. It downloads subtitles with yt-dlp, selects the preferred language, converts WebVTT cues into timestamped plain text, and reports the output path and line count.
Requirements
- Install
yt-dlpand confirmyt-dlp --versionsucceeds. - Resolve the absolute directory containing this
SKILL.md; refer to it as<skill-dir>. - Keep the output in the user's current working directory unless they request another location.
The Python wrapper itself uses only the standard library. It can display --help without yt-dlp being installed.
Primary workflow
Run without browser cookies first:
python3 "<skill-dir>/scripts/transcribe_youtube.py" \
"<youtube-url>" \
--output-dir "$PWD"
The default language preference is Simplified Chinese, Traditional Chinese, other Chinese variants, then English. Override it when the user requests another language:
python3 "<skill-dir>/scripts/transcribe_youtube.py" \
"<youtube-url>" \
--languages "ja.*,en.*" \
--output-dir "$PWD"
The wrapper supports normal watch URLs plus youtu.be, Shorts, live, and embed URLs. A successful run writes one .txt file whose non-empty lines use this shape:
00:03 Subtitle text
00:08 Next subtitle text
Cookie retry
Do not read browser cookies by default. If the initial command fails specifically because the video requires sign-in, age verification, membership, or another authenticated session:
- Explain that the retry will let
yt-dlpread YouTube cookies from a local browser profile. - Ask the user which browser profile they approve using.
- Retry only after approval:
python3 "<skill-dir>/scripts/transcribe_youtube.py" \
"<youtube-url>" \
--cookies-from-browser chrome \
--output-dir "$PWD"
Never print, copy, or persist browser cookies in the transcript or logs.
Browser fallback
Use browser automation only when yt-dlp is unavailable or cannot obtain subtitles and an appropriate browser-control capability is available.
- Inspect the tools available in the current session; do not assume fixed MCP server or tool names.
- Open the video, reveal the transcript panel, and extract visible timestamp/text pairs.
- Save the result as
<sanitized-video-title>.txtin the requested directory. - Close pages or sessions opened solely for this task.
If neither CLI extraction nor browser automation is available, report the missing capability instead of claiming success.
Completion report
Return:
- Absolute transcript path
- Selected subtitle language
- Number of transcript lines
- Whether browser cookies or browser automation were used