YouTube Transcript Scraper | Captions & Full Text | $0.8 / 1K
Pricing
from $0.80 / 1,000 transcript scrapeds
YouTube Transcript Scraper | Captions & Full Text | $0.8 / 1K
Get YouTube video transcripts and captions with timestamps plus one joined full-text field. Paste video, channel or playlist URLs. Auto-caption fallback and language choice. No login, no browser. $0.0008 per transcript.
Pricing
from $0.80 / 1,000 transcript scrapeds
Rating
0.0
(0)
Developer
Hriday Rungta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Get the transcript of any YouTube video as timestamped segments and one joined full-text field, ready for LLMs, RAG, summaries, search and content repurposing. Paste video URLs, or a whole channel or playlist, and get one row per video. No login, no API key, no browser.
You are only charged for videos where a transcript is actually returned. Videos without captions, private or deleted videos are returned as a status row and are never charged.
What data do you get from a YouTube transcript scraper?
For every video:
- Full transcript text in one field (
text), plus an optionalsegmentsarray withstart,durationandtextper caption line - Language of the transcript, its name, and whether it is auto-generated or human-made
- Video details: title, channel name and id, length in seconds
- Word count and segment count
- Optionally every caption language the video offers (
availableLanguages) - A
statusper video:ok,no-captions,language-not-available,unavailableorblocked
How to scrape YouTube transcripts (tutorial)
- Add one or more Video, channel or playlist URLs (one per line). Watch links,
youtu.belinks, Shorts and live links, bare 11-character video ids,@handlechannels and playlist links all work. - Pick your Preferred languages (default
en). Human-made captions are tried first, then auto-generated ones. - Set Max videos in total so you always know your worst-case bill.
- Click Start. Download the dataset as JSON, CSV, Excel or via API.
Input
| Field | What it does |
|---|---|
| Video, channel or playlist URLs | Videos give their transcript. Channels and playlists are expanded to their latest videos. |
| Max videos per channel / playlist | How many of the latest videos to take from each channel or playlist (default 10). |
| Max videos in total | Hard cap on videos processed in the run (default 100). |
| Preferred languages | Language codes in order of preference, e.g. en, es, pt-BR. |
| Fall back to any available language | If no preferred language exists, return the original-language captions instead of nothing (default on). |
| Prefer human-made captions | Take uploaded captions over auto-generated ones when both exist (default on). |
| Include timestamped segments | Adds the segments array. Turn off for a lighter dataset. |
| Put timestamps inside the full text | Makes text one line per cue, like [01:23] .... |
| List all available caption languages | Adds availableLanguages to each row. |
| Remove back-to-back duplicate lines | Drops a line identical to the one right before it. |
Output example
{"videoId": "jNQXAC9IVRw","url": "https://www.youtube.com/watch?v=jNQXAC9IVRw","status": "ok","title": "Me at the zoo","channelId": "UC4QobU6STFB0P71PMvOGN5A","channelTitle": "jawed","lengthSeconds": 19,"language": "en","languageName": "English","isAutoGenerated": false,"matchedRequestedLanguage": true,"segmentCount": 6,"wordCount": 39,"text": "All right, so here we are, in front of the elephants the cool thing about these guys is that they have really... really really long trunks and that's cool (baaaaaaaaaaahhh!!) and that's pretty much all there is to say","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..." }],"scrapedAt": "2026-10-14T04:59:00.257Z"}
A video with no captions comes back like this (not charged):
{ "videoId": "jWdxXdp8sZI", "status": "no-captions", "message": "This video has no captions / transcript available.", "title": "...", "text": null }
Pricing
Pay per event, no subscription:
- $0.0015 once per run (start fee)
- $0.0008 per transcript returned, which is $0.80 per 1,000 transcripts
| Run | Cost |
|---|---|
| 1 video | $0.0023 |
| 100 videos | about $0.082 |
| 1,000 videos | about $0.80 |
| 10,000 videos | about $8.00 |
You are charged for the transcript only when a transcript is returned. Videos without captions, unavailable videos and videos YouTube would not serve are free. The platform's own usage (compute) is included in these prices for paying users.
Use cases
- Feed transcripts into LLMs and RAG pipelines, chatbots and search indexes
- Summarize, quote or repurpose videos into blog posts, newsletters and social posts
- Research and monitor what a channel talks about, in text form
- Build datasets for NLP, topic and keyword analysis
FAQ
Does it work for auto-generated captions? Yes. If a video only has auto-generated captions you get those, and isAutoGenerated is true.
Does it transcribe audio with AI? No. It returns the captions YouTube already has for the video, human-made or auto-generated. Videos with no captions at all return no-captions and are free.
Can it translate transcripts? No. YouTube's own caption translation could not be reached reliably over plain HTTP, so this Actor returns the languages a video natively has. Use "List all available caption languages" to see what a video offers.
Can I scrape a whole channel or playlist? Yes. Add the channel or playlist URL and set "Max videos per channel / playlist". The latest videos are taken in the order YouTube lists them.
Does it work for long videos and live-stream replays? Yes, long videos work (a 4-hour course returned about 2,900 segments in one row). Live streams that are still running have no final transcript.
Why did a video come back as blocked? YouTube sometimes refuses a request from a given IP. The Actor retries up to 20 times on fresh IPs. If it still fails, the video is not charged: run it again later.
Known limits. Private, deleted and age-restricted videos return unavailable. Some videos have captions turned off by the uploader. Channel and playlist expansion reads the first pages YouTube serves for that channel or playlist.
Is it legal to scrape YouTube transcripts?
This Actor reads publicly available captions of public videos and uses no login. You are responsible for how you use the data: respect copyright and YouTube's Terms of Service, and do not republish transcripts of videos you have no rights to. Do not use it to collect personal data in ways that break privacy law such as GDPR.
More scrapers from this developer
| Scraper | What it does |
|---|---|
| YouTube Scraper | Video details, channel videos, search results and comments |
| YouTube Shorts Scraper | Channel Shorts with views, likes and dates |
| YouTube Comments Scraper | Top-level comments for any video |
| YouTube Channel Scraper | Channel profile data and stats |
| Reddit Scraper | Posts and comments from Reddit |