YouTube Transcript Scraper - Bulk & Whole Channels
Pricing
from $2.00 / 1,000 transcript delivereds
YouTube Transcript Scraper - Bulk & Whole Channels
Extract transcripts from thousands of YouTube videos in one run. Paste video URLs, a channel, or a playlist. Clean text, timestamped segments, SRT and WebVTT subtitles, or RAG-ready chunks. Any language, human or auto captions, plus video metadata. $2 per 1,000; videos without captions are free.
Pricing
from $2.00 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
DONGMIN KIM
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Transcript Scraper — Bulk Subtitles to Text, SRT, VTT & RAG Chunks
Extract transcripts from thousands of YouTube videos in one run. Paste video URLs, a channel, or a playlist — get back clean text, timestamped segments, SRT/VTT subtitle files, or pre-chunked passages ready for embeddings. Video metadata is included in every row at no extra cost.
Built for people who hit the wall with other transcript scrapers: one URL at a time, silent failures when YouTube throttles, and no metadata.
What makes this one different
| This actor | Typical transcript scraper | |
|---|---|---|
| Input | Unlimited URLs + whole channels + playlists in one run | One video URL per run |
| Throttling | Datacenter → residential proxy escalation, per-video IP sessions | Fails, or silently returns nothing |
| Metadata | Title, channel, views, duration, publish date, keywords, thumbnail — free | Sold separately, or missing |
| RAG output | Merged chunks with timestamps + configurable overlap | Raw 2-second caption cues |
| Languages | Priority list, human tracks preferred over auto-generated | First track found |
| Failures | Row with a readable error, and you are never charged for it | Charged anyway, or the run dies |
Why the throttling part matters
YouTube's caption host (youtube.com/api/timedtext) rate-limits per IP address, and independently of the rest of the API. Once an IP is throttled, every caption format and every header combination keeps returning HTTP 429 — we measured this: 15 request variants, all blocked, for over 40 minutes on the same IP.
Most scrapers treat that as "retry and hope". This one treats a 429 as burn this IP and moves to a fresh proxy session. It also starts on cheap datacenter proxies and only escalates to residential once datacenter is provably blocked — which is exactly why it can be priced below the alternatives.
Input
Paste anything YouTube-shaped into YouTube URLs:
{"videoUrls": ["https://www.youtube.com/watch?v=8S0FDjFBj8o", // watch URL"https://youtu.be/jNQXAC9IVRw", // short link"https://www.youtube.com/shorts/abcdefghijk", // Shorts"dQw4w9WgXcQ", // bare video ID"@veritasium", // whole channel"https://www.youtube.com/playlist?list=PLZHQ..." // whole playlist],"maxVideos": 500,"languages": ["en", "es"],"outputFormat": "chunks","chunkMaxChars": 1200,"chunkOverlapChars": 100}
Channels and playlists are expanded to their videos automatically, up to Max videos.
Key settings
- Preferred languages — ISO-639-1 codes in priority order. A human-made track always beats an auto-generated one in the same language.
- Allow auto-generated captions — turn off if you only want reviewed subtitles.
- Output format —
text,chunks,segments,srt,vtt, orall. - Chunk size / overlap — only used by
chunks. Caption cues are ~2 seconds long and useless for embeddings; this merges them into passages. - Concurrency — default 10. Raise for speed.
Output
One row per video:
{"videoId": "8S0FDjFBj8o","url": "https://www.youtube.com/watch?v=8S0FDjFBj8o","title": "The Danger of Silence","channelName": "TEDx Talks","channelId": "UCsT0YIqwnpJCM-mx7-gSA4Q","durationSeconds": 356,"viewCount": 15641909,"publishedAt": "2014-03-07","keywords": ["poetry", "education"],"thumbnailUrl": "https://i.ytimg.com/vi/8S0FDjFBj8o/maxresdefault.jpg","language": "en","languageName": "English","isAutoGenerated": false,"segmentCount": 128,"wordCount": 1043,"transcript": "Hear that? That is the sound of ..."}
With outputFormat: "chunks" you also get:
"chunks": [{ "start": 0.0, "end": 58.4, "text": "Hear that? ..." },{ "start": 55.1, "end": 121.7, "text": "...continues here" }]
Videos with no captions come back as a row with transcript: null and a readable error — and are never billed.
Pricing
Pay per event. Beyond $0.00004 for starting a run — the platform's $0.00001 minimum, charged once per GB — you are only charged for a transcript that is actually delivered. Videos without captions, throttled requests, and failed rows cost you nothing.
Run it on a channel of 500 videos and you pay for the transcripts you get back, not for the attempts.
Common uses
- RAG / AI knowledge bases —
chunksformat drops straight into a vector store. - Content repurposing — turn a back catalogue into blog posts, newsletters, show notes.
- Competitor & market research — transcribe a competitor's whole channel and search it.
- SEO — extract the language your audience actually uses, at scale.
- Subtitle files — bulk SRT/VTT export for re-uploading or translating.
- Datasets — build training or analysis corpora with metadata attached.
FAQ
Does this need a YouTube API key? No. The official Data API will not return captions for videos you do not own; this does not use it.
What if a video has no captions?
You get a row with error explaining why, plus availableLanguages when there were tracks in other languages. You are not charged.
Can I get auto-translated captions?
Not currently. YouTube removed the tlang translation parameter from the caption endpoint. Pull the original language and translate downstream.
How fast is it? Concurrency 10 by default. A 500-video channel typically finishes in a few minutes.
Can I run it on a schedule? Yes — use Apify Schedules, or call it from the API. It is also available over MCP for AI agents.
Is scraping YouTube transcripts legal? This reads publicly available caption data, the same data the YouTube web player requests. You are responsible for how you use the output, including copyright in the underlying content.
Integrations
Works with Apify's standard integrations: webhooks, Zapier, Make, n8n, Google Sheets, Airtable, LangChain, and the Apify MCP server for AI agents. Every run's dataset is available as JSON, CSV, Excel or XML via the API.