YouTube Transcript Scraper - Bulk, No Browser
Pricing
from $2.50 / 1,000 transcript delivereds
YouTube Transcript Scraper - Bulk, No Browser
Transcripts from YouTube videos, playlists and channels, charged only when a transcript is actually delivered. No browser, so a run finishes in seconds. Benchmarked 45/45 videos with zero failures. Every video that cannot be fetched says exactly why instead of disappearing from the output.
Pricing
from $2.50 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
Halil Erdogan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Transcript Scraper — bulk, no browser, $2.50 per 1,000
Pull transcripts from YouTube videos, playlists and channels. Paste anything —
watch links, youtu.be links, Shorts, playlist URLs, @channel handles, or bare
video IDs — and get back clean text, timestamped segments, or an SRT file.
Price
$0.0025 per transcript delivered ($2.50 per 1,000), plus $0.001 per run. You are charged only for rows that contain a transcript. A video with captions disabled, an age gate or a region block still gets a row that explains what happened — and that row is free.
There is no platform-usage surcharge on top: the price above is the whole price.
Measured, not claimed
Benchmark on 2026-09-05 (build 0.2.5), default settings: three channels (TED, Veritasium, BBC News), 45 videos → 45 transcripts, 0 failures, 24 seconds. Median transcript 2,403 words; 22 auto-generated and 23 human-written; 44 English and 1 Arabic.
Two notes on that number:
- Keep the default settings. They are what the benchmark was measured on. Changing them to cut cost will cut the success rate with it.
- 45 videos is a benchmark, not a guarantee. Captions the uploader disabled, age-gated videos and region blocks will still fail — and when they do, the row tells you which one it was.
What makes it different
No browser. Transcripts come from YouTube's own caption endpoints over plain HTTP. There is no Chrome instance to start, so a run finishes in seconds instead of minutes and costs a fraction of a browser-based scraper. That saving is what makes the price possible.
Nothing fails silently. Give it 500 URLs and some of them will have captions disabled, be age-gated, or be region-blocked. Those come back as rows that say exactly which problem it was — you never have to diff your input against your output to work out what went missing.
| What happened | What you get in the row |
|---|---|
| Captions turned off by the uploader | the uploader disabled captions on this video |
| No track in your languages | no caption track matched your language settings |
| Private, deleted or region blocked | the video is private, deleted or region blocked |
| Age restricted | the video is age restricted and needs a signed-in session |
| YouTube throttled the request | split the batch into smaller runs |
Title, channel and duration come free. They are read from the same response as the caption list, so there is no extra request and no extra cost per video.
Input
| Field | Notes |
|---|---|
| YouTube URLs | Videos, playlists, channels or bare IDs, one per line |
| Preferred languages | In order, e.g. en, es, tr. First one the video has wins |
| Accept auto-generated captions | On by default — most videos have nothing else |
| Translate if missing | Ask YouTube to translate a track it does have |
| Output format | Plain text · timestamped segments · SRT · all three |
| Include title, channel, duration | On by default; costs nothing extra |
| Max videos per playlist/channel | Single video URLs are never limited |
| Parallel requests | 10 is a good balance |
| Proxy | Leave on the default — it is what the benchmark was measured on |
Output
videoId · url · title · channel · language · languageName ·
isGenerated · segmentCount · wordCount · durationSeconds · ok ·
error, plus text, segments and/or srt depending on the format you chose.
Plain text is what you feed an LLM or a RAG pipeline; segments keep the caption cue timestamps; SRT is a ready subtitle file.
Notes
Most transcripts are machine-generated. YouTube auto-captions the majority of videos and few uploaders write their own. Auto-captions have no punctuation and misread names. If you need human-written captions only, turn off Accept auto-generated captions — and expect most videos to return nothing.
Very large batches can still hit limits. If a long run starts returning block errors partway through, split it into smaller runs. The error rows tell you the moment it happens, and you are not charged for them.
Timestamps are the caption track's own. They are accurate to the caption cue, not to the word.