CLI Tool · Open Source · MIT

scrbd.

YouTube transcripts from your terminal. No API key, no setup. Works with npm or bun.

0 dependencies
5 output formats
1 command to start
transcripts

Features

06
🔑 01

No API Key

Works instantly. No Google API keys, no OAuth, no configuration required.

🔍 02

Search & Clip

Find phrases with context. Extract time ranges for precise segments.

🌍 03

Multi-language

Fetch captions in any available language. All YouTube language codes supported.

📄 04

5 Output Formats

Plain text, timestamped, JSON, Markdown, and SRT subtitles.

05

Batch Processing

Process multiple videos at once. Pipe URLs from files or other commands.

📦 06

Zero Dependencies

No runtime dependencies. Works with Node.js 18+ or Bun. Lightweight and fast.

How it works

Three steps. That's it.

1

Run the command

Pass a YouTube URL, short link, or just the video ID.

$ scrbd dQw4w9WgXcQ
2

Pick your format

Add a flag for the output format you need.

--json --srt --md --timestamps
3

Use the output

Pipe to files, clipboard, jq, or other tools.

| pbcopy > file.srt | jq

Usage

Simple commands, powerful output

Basic
# 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
# 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
# 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
(default)
Plain text
--timestamps
Timestamped
--json
JSON
--md
Markdown
--srt
SRT Subtitles

Start transcribing

One command. Zero setup.

View on npm →