YouTube Transcript Scraper: Videos, Shorts, Channels
Pricing
from $3.00 / 1,000 transcripts
YouTube Transcript Scraper: Videos, Shorts, Channels
Extract YouTube transcripts, subtitles and captions from videos, Shorts, playlists and entire channels. Get clean text, timestamped segments or SRT in any language, with auto-translation. Built for AI, RAG and content repurposing. Pay only for transcripts delivered.
Pricing
from $3.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
Sergio Cantu Salazar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
YouTube Transcript Scraper
Get the transcript (subtitles) of any YouTube video as clean text, timestamped segments or an SRT file. Paste videos, Shorts, whole playlists or channels, choose your languages, and optionally translate everything into one language. You only pay for transcripts that are delivered: videos without captions cost nothing.
What you can do with it
- Feed AI tools and LLMs. Turn videos into text for summaries, RAG pipelines, embeddings or fine-tuning datasets.
- Repurpose content. Get blog posts, newsletters, show notes and social posts out of your own videos.
- Research and monitoring. Search what a channel or a whole playlist says about a topic without watching hours of video.
- Subtitles. Download SRT files for editing, archiving or accessibility.
- Multilingual work. Get transcripts in Spanish, Portuguese, English or any language YouTube supports, or translate them.
Features
- Works with videos, Shorts, live replays, playlists and channels (newest videos first). Plain video IDs also work.
- Language preferences in order, for example
["es", "en"].esalso matches regional variants such ases-419andes-ES. - Human-made captions first, auto-generated captions only when there is nothing better.
- Translation into any language YouTube supports, using YouTube's own translation.
- Three output formats at once: plain text, segments with start time and duration, and SRT.
- Video details included: title, channel name and channel URL.
- Clear errors: every video that has no transcript still appears in the results with the reason (no captions, unavailable, blocked), so nothing silently disappears.
- Light and fast: it calls YouTube's player API directly instead of loading full web pages.
Input
| Field | What it does | Default |
|---|---|---|
startUrls | Video, Shorts, playlist or channel URLs (or video IDs) | required |
languages | Preferred language codes, in order | ["en"] |
fallbackToAnyLanguage | If no preferred language exists, return any available transcript | true |
translateTo | Translate every transcript into this language code | empty |
includeTimestamps | Add timestamped segments | true |
includeSrt | Add an SRT subtitle file | false |
maxVideosPerSource | Videos taken from each playlist or channel | 50 |
maxTranscripts | Stop after this many videos in total (0 = no limit) | 0 |
maxConcurrency | Videos processed at the same time | 3 |
residentialFallback | Retry blocked videos through residential IPs | true |
proxyConfiguration | Proxy for the first attempt | Apify Proxy |
Example:
{"startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/@veritasium","https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI"],"languages": ["es", "en"],"translateTo": "es","maxVideosPerSource": 20}
Output
One item per video:
{"videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channelName": "Rick Astley","channelUrl": "https://www.youtube.com/@RickAstleyYT","languageCode": "es-419","language": "Spanish (Latin America)","isAutoGenerated": false,"translatedTo": null,"availableLanguages": ["de-DE", "en", "es-419", "ja", "pt-BR"],"wordCount": 308,"durationSeconds": 211,"text": "Conocemos bien el amor Tú conoces las reglas, igual que yo ...","segments": [{ "start": 18.64, "duration": 3.24, "text": "Conocemos bien el amor" }],"status": "ok"}
Videos without a transcript come back with "status": "error" and an error message, and they are not charged.
You can export the results as JSON, CSV, Excel or HTML, or read them through the Apify API.
Pricing
Pay per transcript delivered. Failed videos, videos without captions and playlist or channel listings are free. You can set a maximum cost per run in the run options and the Actor stops when it reaches it.
Tips
- Blocked videos are retried through residential IPs automatically. If some still fail, lower Parallel requests or choose the RESIDENTIAL group under Proxy.
- To get every video of a channel, raise Max videos per playlist or channel.
- To get Shorts from a channel, use its Shorts tab URL, such as
https://www.youtube.com/@channel/shorts.
FAQ
Does it work for videos without captions? No. It reads the captions YouTube already has, either uploaded by the creator or auto-generated. Most videos with speech have auto-generated captions.
Is it legal? It only reads publicly available captions and does not log in to any account. Make sure your use of the data follows YouTube's terms and the laws that apply to you.
Can I call it from my code? Yes. Use the Apify API or the Apify clients for JavaScript and Python with the same input as above.