YouTube Transcript Scraper
Pricing
from $1.00 / 1,000 transcripts
YouTube Transcript Scraper
Scrape YouTube transcripts and captions from videos, Shorts, channels and playlists. Full text in every result plus downloadable TXT and SRT files, timed segments, and every caption language the video offers. Fast and low cost.
Pricing
from $1.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
Coder
Maintained by CommunityActor stats
1
Bookmarked
22
Total users
11
Monthly active users
12 days ago
Last modified
Categories
Share
Scrape YouTube transcripts and captions from videos, Shorts, live replays, and whole channels or playlists. Every transcript comes as full text in the results, plus downloadable .txt and .srt files, optional timed segments, in any caption language the video has. No YouTube account, no login and no API key needed.
Use it for AI / LLM datasets and RAG, content research and summaries, SEO and keyword research, subtitles and translation workflows, accessibility, and quotes and fact-checking.
What you get
One row per video and language
Each row has the video (ID, link, title, type, channel, duration, publish date), the caption language, whether it is auto-generated, the languages the video offers, a word count, the full transcript text, and links to the .txt and .srt files.
Downloadable files
Every transcript is also saved to the run's key-value store as <videoId>_<language>.txt and .srt (and .json with timed segments when turned on), so you can download subtitles directly or skip the text in the results to keep them small.
Timed segments (optional)
Every caption line with its start time and duration - ready for search-inside-video, clipping or your own subtitle format.
Video details (optional add-on)
Description, views, likes, comment count, tags, category and more for each video, in a separate table.
Input
| Field | What it does |
|---|---|
| YouTube links | Video, Short and live links, youtu.be links, and channel (URL or @handle) or playlist links |
| Transcript languages | e.g. en, es, pt-BR - one row per language the video has. Empty = each video's own language |
| Include transcript text in results | On by default. Turn off to use only the file links |
| Include timed segments | Every caption line with start time and duration (+ a .json file) |
| Videos per channel or playlist | For channel and playlist links: this many of the newest videos |
| Published after | For channel and playlist links: only newer videos |
| $ Add video details | Adds a full video row per video in its own table |
Example input
{"startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/@mkbhd"],"transcriptLanguages": ["en"],"maxVideos": 10}
Example output
{"type": "transcript","videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","videoType": "video","channel": { "id": "UCuAXFkgsw1L7xaCfnd5JJOw", "name": "Rick Astley", "handle": "@RickAstleyYT", "url": "https://www.youtube.com/@RickAstleyYT" },"duration": "3:34","durationSeconds": 214,"publishedAt": "2009-10-25T06:57:33Z","language": "en","languageName": "English","isAutoGenerated": false,"availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],"wordCount": 402,"text": "We're no strangers to love You know the rules and so do I ...","txtUrl": "https://api.apify.com/v2/key-value-stores/<store>/records/dQw4w9WgXcQ_en.txt","srtUrl": "https://api.apify.com/v2/key-value-stores/<store>/records/dQw4w9WgXcQ_en.srt"}
Pricing
You pay only for transcripts you receive - never for links, retries, or videos without captions in your language.
| Result | Price per 1,000 |
|---|---|
| Transcript (one video, one language, text + files) | $2.00 |
| Video details add-on (per video) | $1.50 |
Prices are for the Apify Free plan; paid Apify plans get lower prices automatically. Files, timed segments and date filters are free. You can set a maximum cost per run in the run options - the Actor stops cleanly when it is reached.
Free plan
On Apify's free plan a run uses up to 5 links, 5 videos per channel or playlist and 1 language. Every feature works, so you can try all of them before upgrading.
Good to know
- Languages: only the caption languages YouTube offers for that video are returned (
availableLanguageslists them); a language the video does not have is skipped. Manual captions are preferred over auto-generated ones. - Excel: a spreadsheet cell holds about 32,000 characters (roughly a 30-minute video). For longer videos use the
.txtlink, or export as JSON / CSV. - No captions: videos without captions in your languages, upcoming streams, and private or removed videos are skipped and not charged; the run log says how many.
- Want comments, channel profiles, search results or community posts too? Use our YouTube Scraper.
FAQ
Do I need a YouTube account or API key? No. Everything is public data, collected without logging in.
Where are the files? In the run's key-value store (Storage tab), and each row links to its own files (txtUrl, srtUrl, jsonUrl).
Can I get transcripts for a whole channel? Yes - paste the channel link or @handle and set "Videos per channel or playlist". Use "Published after" for only recent uploads.