YouTube transcripts from your terminal. No API key, no setup. Works with npm or bun.
Works instantly. No Google API keys, no OAuth, no configuration required.
Find phrases with context. Extract time ranges for precise segments.
Fetch captions in any available language. All YouTube language codes supported.
Plain text, timestamped, JSON, Markdown, and SRT subtitles.
Process multiple videos at once. Pipe URLs from files or other commands.
No runtime dependencies. Works with Node.js 18+ or Bun. Lightweight and fast.
Three steps. That's it.
Pass a YouTube URL, short link, or just the video ID.
$ scrbd dQw4w9WgXcQ
Add a flag for the output format you need.
--json --srt --md --timestamps
Pipe to files, clipboard, jq, or other tools.
| pbcopy > file.srt | jq
Simple commands, powerful output
# Get a transcript scrbd "https://youtube.com/watch?v=dQw4w9WgXcQ" # With timestamps scrbd dQw4w9WgXcQ --timestamps [0:00] We're no strangers to love [0:03] You know the rules and so do I
# Search within a transcript scrbd search dQw4w9WgXcQ "never gonna" Found 3 matches: [0:18] Never gonna give you up [0:23] Never gonna let you down
# Export as SRT subtitles scrbd dQw4w9WgXcQ --srt > subtitles.srt # JSON piped to jq scrbd dQw4w9WgXcQ --json | jq '.[].text' # Clip a time range scrbd clip dQw4w9WgXcQ --from 0:30 --to 1:00 # Multiple videos at once scrbd dQw4w9WgXcQ abc123 xyz789 # Or pipe from a file cat urls.txt | scrbd --json
One command. Zero setup.