baoyu-youtube-transcript: a skill that downloads YouTube transcripts, subtitles and cover images
baoyu-youtube-transcript makes Claude download a YouTube video's transcript, subtitles and cover image from a link, with optional chapters and speaker labels.
- Installs
- 22K
- on skills.sh
- Stars
- 27.2K
- on GitHub
- Files
- 8
- besides SKILL.md
- Updated
- Nov 2026
- last repo commit
Give Claude a YouTube URL or video ID and it runs a bundled TypeScript script that saves the transcript as Markdown with timestamps, or as an SRT file, plus the video metadata and the cover image. Options choose the language, translate it, split it into chapters from the video description, or prepare it for speaker identification.
When you use --speakers, Claude hands the saved file to a sub-agent that labels who is talking, using the title, channel, description and conversation cues. Results are cached under a youtube-transcript/ folder, so a second run for the same video needs no new network request.
The skill says it needs no API key and no browser. It reads YouTube's own InnerTube API and falls back to yt-dlp when YouTube blocks the direct request. It runs with bun, or npx -y bun when bun is not installed.
Good for
- Researchers and writers who want clean, timestamped text from a video
- Creators who need SRT subtitles or a video thumbnail
- Anyone summarizing interviews and podcasts, since speaker labels and chapters are built in
Install baoyu-youtube-transcript
Claude Code
- 1
Copy this prompt.
Install the baoyu-youtube-transcript skill in Claude Code. Run this command: npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-youtube-transcript Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
From its listing on skills.sh. Source.
What's in the skill
When it loads
Downloads YouTube video transcripts/subtitles and cover images by URL or video ID. Supports multiple languages, translation, chapters, and speaker identification. Caches raw data for fast re-formatting. Use when user asks to "get YouTube transcript", "download subtitles", "get captions", "YouTube字幕", "YouTube封面", "视频封面", "video thumbnail", "video cover image", or provides a YouTube URL and wants the transcript/subtitle text or cover image extracted.
Sections in SKILL.md
- Script Directory
- Usage
- Options
- Optional Environment Variables
- Input Formats
- Output Formats
- Output Directory
- Caching
- Workflow
- Chapter & Speaker Workflow
- Chapters (--chapters)
- Speaker Identification (--speakers)
- Error Cases
Key facts
- Author
- Jim Liu (JimLiu)
- License
- MIT
- Repository
- jimliu/baoyu-skills
- Installs on skills.sh
- 21,985 as of 2026-11-02
- GitHub stars
- 27,159 as of 2026-11-02
- Last repo commit
- 2026-11-01
- Files in the skill folder
- 9 files including SKILL.md (7 TypeScript files, 1 prompt file)
- skills.sh audits
- Gen Agent Trust Hub pass, Socket pass, Snyk warn
- Version
- 1.1.0
- Runs with
- bun, or npx -y bun
What it includes
Download a transcript as Markdown with timestamps
The default run. It fetches metadata and the cover image, caches the raw data and prints the saved file path.
Runs code ·
scripts/main.ts <url-or-id>Show available transcripts
SKILL.md says to run this first when you did not give a language. It prints to the screen and saves no file.
Runs code ·
--listPick language priority or translate
Takes comma-separated codes in priority order, default en. --translate converts to a language code you give.
Network ·
--languages / --translateWrite SRT subtitles
Default format is text, a Markdown file with frontmatter, title and summary.
Files ·
--format srtSplit into chapters from the video description
Reads timestamps like 0:00 Introduction and adds a table of contents. Without them it groups paragraphs only.
Files ·
--chaptersPrepare for speaker identification
Implies --chapters. A sub-agent then labels speakers using speaker-transcript.md and rewrites the Markdown file.
Files ·
--speakersControl the cache and caption type
Force a re-fetch, or skip auto-generated or manually created captions.
Network ·
--refresh, --exclude-generated, --exclude-manually-createdRetries with yt-dlp when YouTube blocks the request
Tries alternate client identities first. Optional YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER passes a browser name to yt-dlp's cookies option.
Runs code ·
yt-dlp fallback
From the official docs
Permissions
Medium risk
Claude runs a script that contacts YouTube and saves files in your folder, and it may fetch yt-dlp itself. Say so up front if you want to approve any install.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
May use your browser cookies with yt-dlp
If you set YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER, yt-dlp reads cookies from that browser during the fallback. Leave it unset unless a video needs it.
The agent may fetch yt-dlp on its own
The script tries yt-dlp, uvx and python3 -m yt_dlp. SKILL.md tells the agent to make yt-dlp available without asking you. Ask Claude to confirm first if you want to approve it.
Runs bun through npx if needed
When bun is missing, the commands use `npx -y bun`, which downloads and runs it.
Writes files in your current folder
Transcripts, metadata and cover images go in youtube-transcript/. The --speakers step rewrites the saved Markdown file.
Technical details
| Talks to | youtube.com and the InnerTube API. i.ytimg.com for cover images. yt-dlp fallback requests |
|---|---|
| Sign-in and keys | SKILL.md names no credentials. The optional YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER variable is passed to yt-dlp's cookies option. |
Questions
What does the baoyu-youtube-transcript skill do?
It makes Claude download a YouTube video's transcript, subtitles and cover image from a URL or video ID. It can add timestamps, chapters, a translation and speaker labels, and saves everything under a youtube-transcript folder.
How do I install it in Claude Code, the Claude app or Codex?
Use the install box above. The baoyu-skills README documents a Claude Code plugin that installs all 20+ skills in the repo, and a Codex project-level copy of selected skill folders. It also advises installing only the skills you need.
Does it need an API key or browser?
No. SKILL.md says it needs no API key and no browser. It needs bun, or npx to run npx -y bun.
What is the cookies option?
An optional environment variable, YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER. When YouTube reports bot detection, you can set it to a browser name such as chrome or safari, and the script passes it to yt-dlp's cookies-from-browser option. Set it only if you are comfortable with yt-dlp reading that browser's cookies.
Is it safe to install?
It runs a TypeScript script that makes web requests to YouTube and writes files into your current folder. If YouTube blocks it, the script may run yt-dlp, and SKILL.md tells the agent to make yt-dlp available itself without asking you. Say so if you want to approve that install.
Why does it say transcripts are disabled or not found?
SKILL.md lists the causes. Transcripts disabled means the video has no captions. No transcript found means the language you asked for is not available. Video unavailable means it is deleted, private or region-locked.
Does it work on age-restricted or private videos?
No. SKILL.md lists age-restricted videos as needing a login and private or region-locked videos as unavailable.
Information
updated Nov 2, 2026
- Repository
- jimliu/baoyu-skills
- Folder
skills/baoyu-youtube-transcript
Sources
Docs, issue trackers and discussions this page is built from.
Show all 4Hide
- SKILL.md · github.com
- baoyu-skills README · github.com
- youtube.ts · github.com
- speaker-transcript.md · github.com