YouTube Transcript Scraper — Subtitles & Timestamps
Pricing
Pay per event
YouTube Transcript Scraper — Subtitles & Timestamps
Get YouTube transcripts and subtitles from any video or Short, with timestamps, SRT, video metadata and translation to 100+ languages. No API key, no login. Built for AI, RAG, LLM agents and content repurposing. Export JSON, CSV, Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Istmobot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
YouTube Transcript Scraper — subtitles, timestamps, SRT & translation
Get the transcript of any YouTube video or Short as clean text, with timestamped segments, a ready-to-use SRT subtitle file, video metadata and optional translation to 100+ languages. No YouTube API key, no login, no browser. Built for AI, RAG and LLM pipelines, content repurposing, SEO, research and accessibility.
What does YouTube Transcript Scraper do?
Paste YouTube links or video IDs and get one clean record per video:
- Full transcript text ready for ChatGPT, Claude, embeddings or summaries.
- Timestamped segments: start time, duration and text of every caption line.
- SRT subtitles you can upload to any video editor.
- Translation: get the transcript in Spanish, English, Portuguese, French, German, Japanese or any other language, with timestamps kept.
- Video metadata: title, channel, duration, views, keywords, description and thumbnail.
- Every caption language the video has, with manual vs auto-generated flags.
- Works with watch URLs, youtu.be links, Shorts, live replays and embeds.
- Export as JSON, CSV, Excel, HTML or use the Apify API.
How to use it
- Add one or more YouTube video URLs or IDs.
- Optionally choose a preferred language (e.g.
en) and a language to translate to (e.g.es). - Click Start and download your transcripts.
Language selection: exact match first (es-419), then same base language (es → es-419), and manual captions before auto-generated ones. With no preference you get the transcript in the language spoken in the video.
How much does it cost?
Pay per result, no subscription:
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
transcript (one video transcript) | $0.004, or $4 per 1,000 transcripts |
Videos without captions, private or unavailable videos and blocked attempts are never charged. Proxy costs are included. The Apify free plan's $5 monthly credit covers about 1,200 transcripts.
Input
| Field | Default | Description |
|---|---|---|
videoUrls | – | YouTube URLs or 11-character IDs (required) |
language | video default | Preferred caption language code |
translateTo | – | Translate the transcript to this language code |
includeSegments | true | Timestamped caption lines |
includeSrt | false | SRT subtitle string |
maxItems | 1000 | Max transcripts per run |
proxyConfiguration | Residential | YouTube shows a bot check to busy cloud IPs; the Actor retries on a new IP |
{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://youtu.be/jNQXAC9IVRw"],"language": "en","translateTo": "es","includeSrt": true}
Output
{"videoId": "jNQXAC9IVRw","url": "https://www.youtube.com/watch?v=jNQXAC9IVRw","title": "Me at the zoo","channelName": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","durationSeconds": 19,"viewCount": 380000000,"language": "en","originalLanguage": "en","isAutoGenerated": false,"isTranslated": false,"availableLanguages": [{ "code": "en", "name": "English", "isAutoGenerated": false }],"wordCount": 39,"transcript": "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","segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" }],"scrapedAt": "2026-10-26T03:00:00.000Z"}
Error items have errorType: NO_TRANSCRIPT, UNAVAILABLE, AGE_RESTRICTED_OR_PRIVATE, BLOCKED, INVALID_URL or TRANSLATION_FAILED. Error items are free.
Use it with AI and automations
Call it from Python, Node.js, Make, Zapier, n8n or as an MCP tool for AI agents through Apify.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("istmobot/youtube-transcript-scraper").call(run_input={"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"includeSegments": False,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item.get("transcript", item.get("error"))[:200])
FAQ
Does it work for videos without captions? No. It reads the captions YouTube has, including auto-generated ones. Videos with no captions return a free NO_TRANSCRIPT item.
Is it legal? It reads publicly available captions. You are responsible for how you use the data; respect copyright and YouTube's terms.
Need a channel or playlist? Paste the video URLs; channel and playlist input is on the roadmap. Open an issue to request it.