feiskyer/youtube-transcribe-skill
Extract subtitles or transcripts from YouTube URLs and save normalized timestamped text locally. Use when the user asks for YouTube subtitles, captions, transcripts, video-to-text, 视频字幕, 字幕提取, YouTube 转文字, or 提取字幕.
npx skills add https://github.com/feiskyer/claude-code-settings --skill youtube-transcribe-skill
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.
yt-dlp and confirm yt-dlp --version succeeds.SKILL.md; refer to it as <skill-dir>.The Python wrapper itself uses only the standard library. It can display --help without yt-dlp being installed.
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
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:
yt-dlp read YouTube cookies from a local browser profile.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.
Use browser automation only when yt-dlp is unavailable or cannot obtain subtitles and an appropriate browser-control capability is available.
<sanitized-video-title>.txt in the requested directory.If neither CLI extraction nor browser automation is available, report the missing capability instead of claiming success.
Return:
Take feiskyer/youtube-transcribe-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.