YouTube Transcript & Subtitles Extractor
Pricing
from $3.00 / 1,000 transcript delivereds
YouTube Transcript & Subtitles Extractor
Get the transcript of any YouTube video, Short, channel or playlist as plain text, timestamped segments or SRT. Picks your preferred language, falls back to any language or YouTube auto-translate, and retries blocked requests on a fresh proxy IP. You only pay for transcripts delivered.
Pricing
from $3.00 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
Recep Vural
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Paste YouTube video URLs, Shorts, or whole channels and playlists. For each video you get one row containing the transcript as plain text, timestamped segments and, if you want it, a ready-made SRT file.
| Field | Meaning |
|---|---|
text | The full transcript as one plain-text string |
segments | [{start, duration, text}] in seconds (optional) |
srt | A complete .srt subtitle file (optional) |
language / isAutoGenerated / isTranslated | Which caption track was used |
availableLanguages | Every caption track on the video. Auto-generated tracks are marked (auto) |
title, channel, durationSeconds, publishDate, viewCount | Video metadata (optional) |
wordCount, charCount | Transcript size |
error, errorMessage | Empty when the row succeeded |
How the language is chosen
- Your
preferredLanguagesin order. Human-made captions beat auto-generated ones in the same language.enalso matchesen-USanden-GB. - If none match and auto-translate is on, the Actor tries YouTube's machine translation into your first language. This is best effort: YouTube offers only a few target languages (often only English) and sometimes refuses the request. When that happens you get the original language, and
translationNoteexplains why. - If none match and fallback is on (the default), you get the video's original captions in whatever language they are.
Input example
{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://youtu.be/iG9CE55wbtY", "https://www.youtube.com/shorts/Y8IJi7iP5vk"],"channelOrPlaylistUrls": ["https://www.youtube.com/@3blue1brown"], "maxVideos": 10,"preferredLanguages": ["en", "de"], "includeSrt": true}
Output example
{"videoId": "jNQXAC9IVRw", "title": "Me at the zoo", "channel": "jawed", "language": "en", "isAutoGenerated": false,"isTranslated": false, "availableLanguages": ["en", "de"], "wordCount": 39, "durationSeconds": 19, "publishDate": "2005-04-24","text": "All right, so here we are, in front of the elephants ...","segments": [{"start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants"}], "error": null}
Reliability
- Two engines. Each video goes through
youtube-transcript-apifirst. If YouTube blocks that request, the Actor falls back to yt-dlp's caption tracks on the same IP. - New IP on every retry. On HTTP 429, "Sign in to confirm you're not a bot" or a similar block, the Actor retries on a new proxy session with exponential backoff, up to 5 attempts by default.
- Clear final errors. These are never retried and never charged:
no_captions(the video has none),language_not_available(fallback switched off),video_unavailable(private, deleted or invalid),age_restricted,invalid_url. A video that stays blocked after every attempt returnsblocked, which is also free.
Proxy
YouTube blocks many datacenter IPs from its caption endpoint, and it rate-limits any single IP after a few dozen requests. The default automatic Apify Proxy rotates IPs and is fine for small runs. For hundreds of videos or for scheduled runs, select the Residential proxy group. Residential traffic is billed by Apify per GB, but caption files are small.
Pricing
Pay per event: you are charged only for each transcript delivered. Rows with an error are free.
Not affiliated with YouTube or Google. You are responsible for using transcripts in line with YouTube's Terms of Service and copyright law. By HAPPYSPROUTSTORE LLC.