YouTube Transcript Scraper 💰 From $0.01 | No Browser
Pricing
from $9.00 / 1,000 results
YouTube Transcript Scraper 💰 From $0.01 | No Browser
Extract YouTube transcripts and subtitles with full video metadata — fast and without a browser. Bulk-process videos, shorts and playlists, get SRT/VTT files, and never pay for videos without captions.
Pricing
from $9.00 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
YouTube Subtitle Scraper — Fast & Cheap
Extract YouTube transcripts and subtitles (manual and auto-generated) together with full video metadata — without a browser. One video takes about 1 second and a fraction of a cent of compute, because every request is a plain HTTP call to YouTube's own data.
This is a YouTube transcript scraper built for scale: pipe transcripts into LLM/RAG pipelines, content repurposing tools, accessibility workflows and bulk research — with SRT/VTT export and no browser, no CAPTCHA, no wasted proxy spend.
Use Cases
- LLM & RAG pipelines — turn videos into text to summarize, quote, embed or index
- Content repurposing — video → blog post → social thread, automated on a schedule
- Bulk transcript research — transcribe a whole channel, playlist or corpus of talks for analysis
- Accessibility & subtitles — generate SRT/VTT files for videos that lack captions, in the languages you need
- Sentiment & topic analysis — analyze transcripts at scale with your own NLP models
- SEO & content mining — mine keywords and topics from competitors' videos
How It Works
Every request is a plain HTTP call — no headless Chromium, so the actor avoids the 5–15 seconds per video that browser-based subtitle scrapers pay. YouTube blocks cloud IPs, so the actor automatically uses the Apify residential proxy (a few hundred KB per video) and rotates sessions on rate limits. Extraction runs in parallel (default 10 concurrent videos, up to 20).
Subtitle track selection is graceful: it requests your chosen language, then falls back to any manual track, then any auto-generated track. Videos without subtitles (live streams, disabled captions) are reported as error items and never charged.
Extract YouTube Transcripts And Subtitles Without The Official API
YouTube's official Data API caption endpoints only work for videos you own — they cannot fetch captions for third-party videos, and they carry quotas. This actor reads the same transcript data the YouTube page uses, at scale, with no OAuth and no quota management on your side.
- Input flexibility —
watch,shorts,youtu.be,/embed/,/live/URLs and even bare 11-character video IDs - Playlists — switch on playlist expansion to process every video in a playlist (with a safety cap)
- Formats — plain transcript text, timestamped transcript, and ready-to-use SRT and VTT subtitle files
- Metadata — title, channel, views, length, publish date and category, alongside each transcript
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | Yes | one sample video | Video URLs (watch, shorts, youtu.be) — or playlist URLs when Expand playlists is on |
language | string | No | en | Transcript language. Falls back to any manual track, then auto-generated. any = best available |
timestamps | boolean | No | false | Prefix each transcript line with [h:mm:ss] and include per-segment data |
includeSrt | boolean | No | false | Add a ready-to-use SRT subtitle file as a text field |
includeVtt | boolean | No | false | Add a ready-to-use WebVTT subtitle file as a text field |
expandPlaylists | boolean | No | false | Treat playlist URLs as a list of videos and process every video |
maxPlaylistVideos | integer | No | 100 | Safety cap when expanding playlists |
maxVideos | integer | No | 0 | Hard cap on total videos in a run. 0 = no cap |
concurrency | integer | No | 10 | Videos extracted in parallel (1–20) |
proxyConfiguration | object | No | Apify residential proxy | Defaults to residential because YouTube blocks cloud IPs |
Example Input
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=SieELGaJV8k" },{ "url": "https://youtu.be/dQw4w9WgXcQ" }],"language": "en","timestamps": false,"includeSrt": false,"concurrency": 10}
Example Output
| Field | Description |
|---|---|
url, video_id | Canonical video URL and ID |
title, channel_name, channel_id | Video and channel identity |
views, length_seconds, publish_date, category | Raw metadata as reported by YouTube |
transcript_language, transcript_language_code, is_auto_generated | Which subtitle track was used |
segment_count, transcript_chars | Size of the transcript |
transcript | Full transcript text (with [h:mm:ss] timestamps when enabled) |
segments | Per-line {start, duration, text} — only when Timestamped transcript is on |
srt, vtt | Ready-to-use subtitle files — optional |
error | Failure reason — only for videos that could not be processed |
{"url": "https://www.youtube.com/watch?v=SieELGaJV8k","video_id": "SieELGaJV8k","title": "Example video","channel_name": "Example Channel","views": 123456,"length_seconds": 612,"transcript_language": "English","is_auto_generated": false,"segment_count": 210,"transcript_chars": 8421,"transcript": "Welcome back to the channel..."}
Pricing
Pay-per-event, billed per successful video — failed videos are never charged:
| Event | Price | When |
|---|---|---|
result | $0.01 | One extracted transcript with metadata |
long-video | $0.02 | Add-on, charged for videos longer than 20 minutes |
apify-actor-start | $0.00005 | Per GB of memory when the run starts (512 MB = $0.00005) |
Example: a 10-video batch of regular videos costs $0.10; a single 3-hour podcast costs $0.03. For comparison, a 10-minute video with a browser-based YouTube scraper on the Store commonly costs several times more in proxy + compute.
Integrations And Automation
- Apify API — call the actor from your app and read the dataset.
- Webhooks — kick off downstream summarization or indexing when a run finishes.
- Scheduled runs — monitor channels/playlists daily or weekly to capture new uploads automatically.
- Zapier / Make / n8n — feed new transcripts into Notion, Google Sheets, Airtable or a vector store.
- Export — JSON, CSV, Excel; transcript text stays clean and ready for LLMs.
Related Actors
- YouTube Scraper — the largest YouTube actor for channel, video and comment metadata; pair with this one for transcripts
- YouTube Comments Scraper — audience sentiment to complement your transcript analysis
- TikTok Scraper — short-form video data for cross-platform content research
- Instagram Scraper — multi-platform content dataset building
- Website Content Crawler — extend your RAG corpus from video transcripts to full web pages
FAQ
Does YouTube have an official transcript API?
YouTube's official Data API caption endpoints only work for videos you own, so they cannot fetch captions for third-party videos. For everyone else, the options are brittle scraping of YouTube's internal endpoints or a hosted service — this actor does that work reliably, at scale, charging only for successful videos.
Why is this actor faster and cheaper than other YouTube transcript scrapers?
It uses plain HTTP, not a headless browser. Browser-based subtitle scrapers pay for proxy traffic and burn 5–15 seconds per video; this actor does not, so it is faster and dramatically cheaper per video.
Which formats can I get?
Plain transcript text, timestamped transcript, and ready-to-use SRT and VTT subtitle files — all from the same run.
Can I transcribe a whole playlist or channel?
Yes. Turn on Expand playlists to process every video in a playlist (with maxPlaylistVideos as a safety cap); feed a list of video IDs to process a channel's videos in bulk.
What happens to videos with no captions?
They are reported as error items and are never charged. Live streams and videos with disabled captions typically have no subtitle track available.
Does auto-generated text work?
Yes. Auto-generated subtitles exist for most videos, so coverage is very high. The track used is reported in is_auto_generated.
How do I use this for an LLM / RAG pipeline?
Set language to your language and read the transcript field (or segments for timestamped data), then chunk and embed it in your vector store. Schedule the actor to keep the corpus fresh.
Can I export transcripts to CSV or JSON?
Yes — JSON, CSV, Excel and more from the dataset tab or the API.
Legal & Compliance Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by YouTube or Google. It accesses only publicly available subtitle/transcript data and video metadata; it does not bypass login and does not solve CAPTCHAs.
You are responsible for complying with YouTube's Terms of Service and all applicable laws, including copyright rules — transcripts are derived from creators' content, so respect the rights of video owners when you store, republish or train on them.
For AI Agents & LLM Apps
Purpose: returns YouTube transcripts/subtitles plus video metadata as structured JSON, one item per successfully processed video, for RAG, summarization and bulk content analysis.
Minimal working input:
{ "startUrls": [{ "url": "https://www.youtube.com/watch?v=SieELGaJV8k" }] }
Variant — timestamped transcript with subtitle files:
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=SieELGaJV8k" }],"language": "en","timestamps": true,"includeSrt": true,"includeVtt": true}
Variant — expand a playlist:
{"startUrls": [{ "url": "https://www.youtube.com/playlist?list=PLxxxxxxxx" }],"expandPlaylists": true,"maxPlaylistVideos": 50,"concurrency": 10}
Output fields: url, video_id, title, channel_name, channel_id, views, length_seconds, publish_date, category, transcript_language, transcript_language_code, is_auto_generated, segment_count, transcript_chars, transcript, segments, srt, vtt, error.
Behaviors an agent should know:
startUrlsis required and accepts watch/shorts/youtu.be/embed/live URLs or bare 11-char video IDs.languagedefaults toen; if unavailable it falls back to any manual track, then auto-generated. Useanyfor best-available.segmentsis only populated whentimestampsistrue;srtonly whenincludeSrtistrue;vttonly whenincludeVttistrue.- Playlist URLs are only expanded when
expandPlaylistsistrue(otherwise treated as a single target);maxPlaylistVideoscaps the expansion. maxVideosis a hard total cap;0means no cap. Defaultconcurrencyis 10 (max 20).- Videos without captions return an
erroritem and are never billed. - Billing is pay-per-event:
result$0.01 per successful transcript,long-video+$0.02 for videos over 20 minutes, plus a tiny per-GB start charge.
SEO Keywords
youtube transcript scraper, youtube transcript api, youtube subtitles scraper, youtube captions downloader, extract youtube transcript, bulk youtube transcript, youtube transcript bulk download, youtube to text, youtube srt, youtube vtt, youtube subtitle downloader, youtube transcript for llm, youtube transcript for rag, transcript api alternative, cheap youtube transcript api, youtube transcript without api key, youtube channel transcript, youtube playlist transcript, auto generated captions scraper, transcript extraction, youtube subtitle generator, no browser youtube scraper, batch youtube transcripts, youtube content research, video to text