YouTube Transcript Scraper — Bulk, SRT & JSON · $5/1k 💰
Pricing
$5.00 / 1,000 transcript delivereds
YouTube Transcript Scraper — Bulk, SRT & JSON · $5/1k 💰
Extract timed transcripts, SRT subtitles and plain text from YouTube videos or entire channels. Pay only for delivered transcripts, from $5/1,000 — built for RAG developers, content teams and AI agents.
Pricing
$5.00 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
David González
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Bulk YouTube transcripts to SRT, JSON and plain text — from $5 per 1,000 videos
This YouTube transcript scraper extracts captions from YouTube videos — or from a channel's latest uploads — and delivers three formats in every single item: timed JSON segments, ready-to-use SRT subtitles, and clean plain text. Paste video URLs or a channel URL, press Start, and download the whole dataset as JSON, CSV or Excel. No browser automation, no audio downloads — it fetches YouTube's own caption data, which makes it fast and cheap. Perfect for bulk YouTube transcript to SRT conversion and as a simple YouTube channel transcripts API for your pipelines.
Unofficial tool — not affiliated with or endorsed by YouTube or Google.
Why use this scraper
- 💰 $5 per 1,000 transcripts — half of what the most-used YouTube transcript scraper on the Store charges ($10 per 1,000), with no subscription and no minimum.
- 🧾 Three formats in one item —
segments(start/duration/text),srtandplainTextcome together in every result. No extra runs, no post-processing, no "export add-on". - 🛡️ Robust by design — every video is tried through two different YouTube clients (web → Android) with automatic retries and exponential backoff. When the standard web route returns empty captions (a common YouTube quirk), the Android route usually still delivers.
- ✅ You never pay for failures — videos without captions, unavailable videos and failed requests are never charged. If a run delivers nothing because of errors, it fails loudly with instructions instead of pretending everything is fine — and charges nothing.
Use cases
- AI & RAG developers — feed timed transcripts into LLM pipelines, vector stores and summarization chains. One flat JSON item per video means zero glue code between scraping and embedding.
- Content & localization teams — pull ready-made
srtfiles in bulk to subtitle, repurpose or translate videos without touching a subtitle editor. - Researchers & SEO analysts — point it at a channel, schedule it, and always have the latest transcripts as clean
plainTextfor keyword, topic and trend analysis.
Sample output
One flat dataset item per video. Real example (segments and text trimmed for brevity):
{"videoId": "jNQXAC9IVRw","url": "https://www.youtube.com/watch?v=jNQXAC9IVRw","status": "success","language": "English","languageCode": "en","isAutoGenerated": false,"segmentsCount": 6,"segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" },{ "start": 5.318, "duration": 2.656, "text": "the cool thing about these guys is that they have really..." }],"srt": "1\n00:00:01,200 --> 00:00:03,360\nAll right, so here we are, in front of the elephants\n\n2\n...","plainText": "All right, so here we are, in front of the elephants the cool thing about these guys is that they have really...","title": "Me at the zoo","channelName": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","durationSeconds": 19,"viewCount": 403439055,"publishDate": "2005-04-23T20:31:52-07:00"}
Item status values:
success— transcript delivered (the only case that is charged).no_captions— the video is playable but has no caption track at all. Free.error— the video could not be processed; theerrorfield explains what happened and what to do. Free.
Input
The minimum you need is a list of videos — everything else has sensible defaults:
{ "videoUrls": ["https://www.youtube.com/watch?v=arj7oStGLkU", "jNQXAC9IVRw"] }
| Field | Type | Description |
|---|---|---|
videoUrls | array | YouTube videos to transcribe. Accepts full URLs (watch, youtu.be, shorts, embed, live) or bare 11-character video IDs. |
channelUrl | string | Optional. A channel URL (e.g. https://www.youtube.com/@TED). The Actor grabs the channel's latest videos from its Videos tab. Can be combined with videoUrls. |
maxVideos | integer | How many of the channel's latest videos to take (default 10, max 30). |
language | string | Preferred caption language as an ISO code (e.g. en, es, pt). Fallback order: manual captions in that language → auto-generated in that language → any manual captions → any captions. Empty = best available. |
includeMetadata | boolean | Add title, channel, duration, view count and publish date to each item (default true). |
proxyConfiguration | object | Proxies for YouTube requests. If runs fail with HTTP 403/429, switch to Apify Proxy with the RESIDENTIAL group. |
Pricing
Simple pay-per-event pricing — you only pay for transcripts that are actually delivered:
| Event | Price |
|---|---|
transcript (one delivered transcript, all 3 formats included) | $0.005 |
1,000 results ≈ $5. Videos without captions (no_captions) and failed videos (error) cost $0. A run that delivers nothing because of errors fails and charges nothing.
FAQ
How do I get transcripts for an entire YouTube channel?
Set channelUrl to the channel's URL (e.g. https://www.youtube.com/@TED) and maxVideos to how many of its latest uploads you want (up to 30). The Actor reads the channel's Videos tab and transcribes them automatically — schedule the run and you have a hands-off channel transcript monitor.
How do I convert YouTube videos to SRT subtitles in bulk?
Paste any number of video URLs into videoUrls and run. Every successful item already contains a complete, correctly timed srt string — download the dataset and you have your subtitle files, no separate conversion step.
Can it transcribe videos that have no captions at all?
No — it extracts existing caption tracks, it does not run speech-to-text. Videos without any captions are reported (free) as no_captions.
Which caption language do I get?
The best track matching your language input, preferring human-made captions over auto-generated ones. The language, languageCode and isAutoGenerated fields in each item tell you exactly which track was used.
Why did a video I know has subtitles come back as no_captions?
Captions can be disabled by the uploader for embedding/API access, or the video may be age-restricted. Try another video from the same channel; if the problem persists, open an issue.
Why is my run failing with HTTP 403 or 429?
YouTube is rate-limiting your IP. The built-in retries and client rotation absorb most of it; if a run still fails, enable Apify Proxy with the RESIDENTIAL group in proxyConfiguration and run again.
Limitations (honest ones)
- Only public, playable videos. Private, members-only, age-restricted or region-blocked videos come back as
errororno_captions. - Channel mode reads the first page of the channel's Videos tab: up to 30 latest videos, regular uploads only (no Shorts tab, no live tab).
- Auto-generated captions are YouTube's own ASR — quality depends on the audio.
isAutoGeneratedtells you which kind you got. - No machine translation: you get caption tracks that actually exist on the video.
- Heavy usage from datacenter IPs can be rate-limited by YouTube. The built-in retries and client rotation absorb most of it; if a run still fails with 403/429, enable RESIDENTIAL proxies in the input.
🤖 For AI Agents & MCP
This Actor is public on the Apify platform, which means AI agents can call it programmatically via the Apify MCP server or the Apify API. An agent can pass a video or channel URL, receive structured JSON transcripts back, and pipe them straight into summarization, Q&A or RAG workflows — with per-transcript pricing that keeps agent runs predictable.
More actors by srd836
- Google Sheets Import & Export — sync scraped data to and from Google Sheets.
- Shopify Store Spy — AliExpress Price Match — analyze Shopify stores and match products against AliExpress prices.
- Naukri Jobs Scraper — extract job listings from Naukri.com.
Support
Found a bug or hit an edge case? Open a ticket in the Issues tab — every issue is read and answered, usually within a few days.
Looking for a way to download YouTube transcripts in bulk, convert bulk YouTube transcript to SRT, use a YouTube channel transcripts API, extract YouTube captions with timestamps, scrape YouTube subtitles to plain text, or feed YouTube video transcripts into an LLM or RAG pipeline? This YouTube transcript scraper does all of that in one run, at $5 per 1,000 videos.