YouTube Transcript Scraper - Bulk & Whole Channels avatar

YouTube Transcript Scraper - Bulk & Whole Channels

Pricing

from $2.00 / 1,000 transcript delivereds

Go to Apify Store
YouTube Transcript Scraper - Bulk & Whole Channels

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

DONGMIN KIM

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 actorTypical transcript scraper
InputUnlimited URLs + whole channels + playlists in one runOne video URL per run
ThrottlingDatacenter → residential proxy escalation, per-video IP sessionsFails, or silently returns nothing
MetadataTitle, channel, views, duration, publish date, keywords, thumbnail — freeSold separately, or missing
RAG outputMerged chunks with timestamps + configurable overlapRaw 2-second caption cues
LanguagesPriority list, human tracks preferred over auto-generatedFirst track found
FailuresRow with a readable error, and you are never charged for itCharged 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 formattext, chunks, segments, srt, vtt, or all.
  • 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 errorand 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 baseschunks format 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.