YouTube Transcript Scraper
Pricing
$50.00 / 1,000 transcript extracteds
YouTube Transcript Scraper
Extract YouTube transcripts and subtitles from videos, playlists and whole channels. Pay only for transcripts you actually receive.
Pricing
$50.00 / 1,000 transcript extracteds
Rating
0.0
(0)
Developer
David Chicaiza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
A stable endpoint for YouTube captions. Built to sit inside a pipeline and keep working.
The output contract
One dataset item per input video, always. Fields:
videoId, url, title, channelName, channelId, durationSeconds, viewCount, availableLanguages, language, isAutoGenerated, isTranslated, transcript[], text
transcript is an array of {start, duration, text}. text is the same content flattened. On success both are present.
The schema is additive-only. New fields may appear. Existing ones will not be renamed, retyped or removed.
Failures are data, not exceptions
A video that cannot be read never aborts the run. You get a record for it carrying an error string, so you can reconcile every input by videoId instead of diffing counts.
You are charged only for a transcript you actually receive. Videos with no captions, or that are private, age-restricted or removed, cost nothing.
Behaviour at volume
YouTube rate-limits by IP, which is what breaks naive transcript scrapers partway through a large job. Each lookup runs a three-client fallback chain (ANDROID, IOS, TVHTML5) over residential proxy, takes a fresh exit IP on every retry, and anything still failing goes through a slower recovery pass at reduced concurrency before it is written off.
Measured on-platform: 40/40 and 20/20 where a single-client fetch returns nothing. Datacenter proxy tested at 0/20, which is why residential is the default.
Input
Video URLs, playlist URLs, or channel URLs and @handles. A channel expands to its uploads. maxVideos caps the job, concurrency (1-25) tunes throughput.
Languages
languages: ["en","es"] selects a preferred track and prefers human-written captions over auto-generated ones. translateTo requests a translated track instead.
Notes
Captions only: this reads YouTube's caption tracks and does not run speech-to-text, so videos with no captions cannot be transcribed.