YouTube Transcript Scraper: Channels, Playlists, SRT, Text
Pricing
from $1.40 / 1,000 transcripts
YouTube Transcript Scraper: Channels, Playlists, SRT, Text
YouTube transcript scraper and API: get captions for any video, Short, channel, playlist or search as text, timestamped segments or SRT. $3 per 1,000 transcripts, charged only when a transcript is returned. No API key, no login.
Pricing
from $1.40 / 1,000 transcripts
Rating
0.0
(0)
Developer
Data Gleaner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
YouTube Transcript Scraper: captions, SRT and timestamps for videos, channels and playlists
Paste YouTube video links, a channel, a playlist or a search phrase and get the transcript of every video as clean text, timestamped segments or an SRT subtitle file, plus title, channel, views and publish date. It reads the captions YouTube already holds, so there is no API key, no login and no audio transcription. $2 per 1,000 transcripts, and you are charged only for videos that return a transcript.
Why this one
- A clear price you can read in one line. $0.002 per video that returns a transcript, with the proxy cost included. Videos with no captions, unavailable videos and errors cost nothing.
- A video without captions gives an answer, not silence. You get a row with
error: "no-captions"(orunavailable,blocked) so a missing transcript is visible in your data, and it is never charged. - Built for YouTube blocking Apify's servers. Every video is tried directly first; if YouTube refuses, the Actor retries up to 3 times through Apify's residential proxy by itself, at no extra charge.
- Whole channels, playlists and searches.
channelUrl,playlistUrlandsearchQuerylist the videos, then fetch each transcript;publishedAfterandpublishedBeforenarrow them. Duplicates are fetched once. - Scheduled monitoring. With
onlyNew, a daily run delivers only videos you have not received yet. - Your language when it exists. Set
language; if the video has no such track the original or auto-generated one comes back andlanguageFallbacksays so.
Minimal input
{"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], "outputFormat": "text"}
Leave everything empty to run three sample videos.
Sample output row
A real row from a platform run on 2026-10-11 (long fields shortened; outputFormat: "segments"). likeCount is null when YouTube does not show it.
{"videoId": "wsstlwuE5XY","url": "https://www.youtube.com/watch?v=wsstlwuE5XY","title": "How to Clean Up the World’s Dirtiest Industry | Joojin Kim | TED","channel": "TED","channelId": "UCAuUUnT6oDeKwE6v1NGQxug","channelHandle": "@TED","channelUrl": "https://www.youtube.com/@TED","subscriberCount": 27900000,"publishedAt": "2026-10-09","durationSeconds": 459,"viewCount": 64551,"likeCount": null,"isLive": false,"description": "Climate strategist Joojin Kim spent years convincing banks across South Korea to...","language": "en","isAutoGenerated": false,"languageFallback": false,"availableLanguages": [{"languageCode": "ar","name": "Arabic","isAutoGenerated": false},{"languageCode": "my","name": "Burmese","isAutoGenerated": false}],"transcriptText": "For those of us who are worried about climate change, it's no doubt challenging times. It feels like the end of the light of the tunnel gets...","wordCount": 999,"source": "channel:https://www.youtube.com/@TED","scrapedAt": "2026-10-11T06:10:46Z"}
Price
$2 per 1,000 transcripts ($0.002 each). A channel of 200 videos where 180 have captions costs 180 x $0.002 = $0.36; a 1,000-video playlist with captions on every video costs $2.00. Set a maximum charge and the run stops cleanly when it is reached.
What you get
- One item per video with title, channel (
channelHandle,channelUrl,subscriberCount,channelThumbnail), publish date, duration,viewCount,likeCount,description,keywords,thumbnailUrl, the language used, whether it is auto-generated, every language available, the full transcript text and the word count. - Timed
segments(start,durationandendin seconds) and ansrtstring when you ask for them. - Your preferred language when the video has it. When it does not, the video's original (or auto-generated) track is used and the item says so in
languageandlanguageFallback. - Several routes to YouTube with automatic fallback and a fresh session on retry, because reliability is what a transcript scraper is for.
Use cases
- Feed videos into an LLM or a RAG index (summaries, Q&A, search over a channel).
- Research and content analysis across a whole channel, playlist or topic search.
- Subtitles (SRT) for editing, translation or accessibility.
- Quote and keyword monitoring across creators.
Input
{"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/shorts/jNQXAC9IVRw", "arj7oStGLkU"],"channelUrl": "https://www.youtube.com/@TED","maxVideos": 10,"language": "en","includeTimestamps": true,"outputFormat": "segments"}
| Field | What it does |
|---|---|
videos | Video URLs (watch, youtu.be, Shorts, embed, live) or 11-character IDs. Channel and playlist URLs pasted here are listed too. Also accepted as startUrls, youtube_url, youtube_urls, videoUrls or urls. |
channelUrl, playlistUrl, searchQuery | List videos from a channel, playlist or YouTube search, then fetch each transcript. Use any mix with videos; duplicates are fetched once. channel_url, playlist_url and search_query are also accepted. |
maxVideos | Videos taken from each of the channel, playlist and search (default 10, max 1000; max_videos also accepted). Does not limit videos. |
language | Preferred language code, default en. |
includeTimestamps | start, duration and end on each segment (default on). Off gives segments with the text only. |
outputFormat | segments (default), text, srt or all. transcriptText is always included. |
proxyConfiguration | Optional. Leave empty: blocked videos switch to Apify residential proxy automatically at no extra charge; see Limits. |
maxConcurrency | Videos fetched at once (default 5, max 20). |
delaySecs | Random start delay per video, up to this many seconds (default 0.3). |
requestTimeoutSecs | Wait for one YouTube response (default 25). |
Run it with nothing filled in and it fetches three sample videos in a few seconds.
Output
{"videoId": "jNQXAC9IVRw","url": "https://www.youtube.com/watch?v=jNQXAC9IVRw","title": "Me at the zoo","channel": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","channelHandle": "jawed","channelUrl": "https://www.youtube.com/@jawed","subscriberCount": 3470000,"channelThumbnail": "https://yt3.ggpht.com/...","publishedAt": "2005-04-23","durationSeconds": 19,"viewCount": 441370197,"likeCount": 15000000,"isLive": false,"description": "The first video on YouTube. ...","keywords": [],"thumbnailUrl": "https://i.ytimg.com/vi/jNQXAC9IVRw/...","language": "en","isAutoGenerated": false,"requestedLanguage": "en","languageFallback": false,"availableLanguages": [{"languageCode": "en", "name": "English", "isAutoGenerated": false}],"transcriptText": "All right, so here we are, in front of the elephants the cool thing about these guys is ...","segments": [{"text": "All right, so here we are, in front of the elephants", "start": 1.2, "duration": 2.16, "end": 3.36}],"wordCount": 39,"route": "android","source": "video","scrapedAt": "2026-10-08T16:23:22Z"}
A video without captions returns {"videoId": "...", "error": "no-captions", ...}. Other error codes: unavailable (private, removed or age-gated), blocked (YouTube refused every route; retry or add a proxy), invalid-input, no-videos, and error for an unexpected failure on one video. Error items are never charged.
Pricing
Pay per event, proxy included: $0.002 per video that returns a transcript (event transcript). No charge for videos without captions, unavailable videos, or errors.
Worked example: a channel of 200 videos where 180 have captions costs 180 x $0.002 = $0.36. A 1,000-video playlist where every video has captions costs $2.00.
Set a maximum charge on the run and it stops cleanly when the budget is used.
Limits
- Needs captions. Videos with no uploaded or auto-generated captions return
no-captions. publishedAtis a date (YouTube shows the day only). It can benullwhen YouTube does not answer that one extra request; the transcript is still returned.- YouTube blocks many datacenter IP addresses, which includes Apify's own servers. Every video is tried directly first. A video that gets blocked is retried through Apify's residential proxy, up to 3 times with a new IP each time. The proxy fee is included in the $0.002 price; you pay nothing extra for it. If you set your own
proxyConfiguration, that proxy is used for every request and the automatic residential retry is off. - Live streams in progress and members-only videos have no transcript available.
FAQ
Is a residential proxy used, and do I pay for it? For some videos, yes. Videos that YouTube blocks on the first direct try are fetched through Apify's residential proxy, which is what makes the success rate high. The price per transcript already includes it, and videos without a transcript are never charged.
Do I need a YouTube API key? No.
Does it download audio or transcribe speech? No. It returns the captions YouTube already holds, so it is fast and cheap.
Why is languageFallback true? The video has no track in your preferred language, so the original or auto-generated one was returned. language tells you which.
Does it accept Shorts? Yes, Shorts URLs and IDs work like any video.
Related Actors
- YouTube Search Scraper: find the videos first. Search YouTube by keyword with date, length and sort filters, get views, likes and descriptions, then pass the video URLs to this Actor for the transcripts.
- YouTube Shorts & Channel Scraper: list every video and Short of a channel, most viewed or newest first, then pass the
videoIdvalues to this Actor for the transcripts. - YouTube Channel Email & Influencer Contacts Finder: public emails, websites and socials for the channels behind the videos.
Responsible use
This Actor reads public caption data that YouTube shows to anyone. Respect creators' rights and YouTube's terms for how you use transcripts, and handle any personal data in them under the laws that apply to you; those obligations rest with you.