
Baoyu Youtube Transcript
Pull YouTube transcripts, chapters, translations, and cover images from a URL or video ID for research and content reuse.
Install
npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-youtube-transcriptWhat is this skill?
- Downloads manual or auto-generated captions via InnerTube with yt-dlp fallback
- Optional languages, translation, chapters, and speaker identification
- Fetches cover/thumbnail metadata alongside transcript text
- Caches raw data for fast re-formatting without re-downloading
- CLI via bun/npx scripts under scripts/main.ts
Adoption & trust: 12.2k installs on skills.sh; 20.9k GitHub stars; 1/3 security scanners passed (skills.sh audits).
Recommended Skills
Agent Browservercel-labs/agent-browser
Lark Imlarksuite/cli
Lark Calendarlarksuite/cli
Lark Sheetslarksuite/cli
Lark Vclarksuite/cli
Lark Contactlarksuite/cli
Journey fit
Primary fit
Research is the primary shelf because the skill is triggered for learning from videos and competitive content discovery early in the journey. Transcript extraction supports audience and topic research before you commit to a build or marketing angle.
Common Questions / FAQ
Is Baoyu Youtube Transcript safe to install?
skills.sh reports 1 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Baoyu Youtube Transcript
# YouTube Transcript Downloads transcripts (subtitles/captions) from YouTube videos. Works with both manually created and auto-generated transcripts. No API key or browser required — uses YouTube's InnerTube API directly and automatically falls back to `yt-dlp` when YouTube blocks the direct API path. Fetches video metadata and cover image on first run, caches raw data for fast re-formatting. ## Script Directory Scripts in `scripts/` subdirectory. `{baseDir}` = this SKILL.md's directory path. Resolve `${BUN_X}` runtime: if `bun` installed → `bun`; if `npx` available → `npx -y bun`; else suggest installing bun. Replace `{baseDir}` and `${BUN_X}` with actual values. | Script | Purpose | |--------|---------| | `scripts/main.ts` | Transcript download CLI | ## Usage ```bash # Default: markdown with timestamps (English) ${BUN_X} {baseDir}/scripts/main.ts <youtube-url-or-id> # Specify languages (priority order) ${BUN_X} {baseDir}/scripts/main.ts <url> --languages zh,en,ja # Without timestamps ${BUN_X} {baseDir}/scripts/main.ts <url> --no-timestamps # With chapter segmentation ${BUN_X} {baseDir}/scripts/main.ts <url> --chapters # With speaker identification (requires AI post-processing) ${BUN_X} {baseDir}/scripts/main.ts <url> --speakers # SRT subtitle file ${BUN_X} {baseDir}/scripts/main.ts <url> --format srt # Translate transcript ${BUN_X} {baseDir}/scripts/main.ts <url> --translate zh-Hans # List available transcripts ${BUN_X} {baseDir}/scripts/main.ts <url> --list # Force re-fetch (ignore cache) ${BUN_X} {baseDir}/scripts/main.ts <url> --refresh ``` ## Options | Option | Description | Default | |--------|-------------|---------| | `<url-or-id>` | YouTube URL or video ID (multiple allowed) | Required | | `--languages <codes>` | Language codes, comma-separated, in priority order | `en` | | `--format <fmt>` | Output format: `text`, `srt` | `text` | | `--translate <code>` | Translate to specified language code | | | `--list` | List available transcripts instead of fetching | | | `--timestamps` | Include `[HH:MM:SS → HH:MM:SS]` timestamps per paragraph | on | | `--no-timestamps` | Disable timestamps | | | `--chapters` | Chapter segmentation from video description | | | `--speakers` | Raw transcript with metadata for speaker identification | | | `--exclude-generated` | Skip auto-generated transcripts | | | `--exclude-manually-created` | Skip manually created transcripts | | | `--refresh` | Force re-fetch, ignore cached data | | | `-o, --output <path>` | Save to specific file path | auto-generated | | `--output-dir <dir>` | Base output directory | `youtube-transcript` | ## Optional Environment Variables | Variable | Description | |----------|-------------| | `YOUTUBE_TRANSCRIPT_COOKIES_FROM_BROWSER` | Passed to `yt-dlp --cookies-from-browser` during fallback, e.g. `chrome`, `safari`, `firefox`, or `chrome:Profile 1` | ## Input Formats Accepts any of these as video input: - Full URL: `https://www.youtube.com/watch?v=dQw4w9WgXcQ` - Short URL: `https://youtu.be/dQw4w9WgXcQ` - Embed URL: `https://www.youtube.com/embed/dQw4w9WgXcQ` - Shorts URL: `https://www.youtube.com/shorts/dQw4w9WgXcQ` - Video ID: `dQw4w9WgXcQ` ## Output Formats | Format | Extension | Description | |--------|-----------|-------------| | `text` | `.md` | Markdown with frontmatter (inc