YouTube Transcript Scraper: Subtitles, SRT, VTT & Chunks
Pricing
from $3.50 / 1,000 transcripts
YouTube Transcript Scraper: Subtitles, SRT, VTT & Chunks
Scrape YouTube transcripts, subtitles and captions from videos, Shorts, playlists and channels, with views, likes and publish date on every row. Pick or translate languages and export text, timestamps, SRT, WebVTT or LLM-ready chunks. No charge for videos without captions.
Pricing
from $3.50 / 1,000 transcripts
Rating
0.0
(0)
Developer
KO HYESONEUNG
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
YouTube Transcript & Subtitles Scraper
Get the transcript of any public YouTube video, and of whole playlists and channels, in the language you want. Timestamps are kept. Captions can be translated into 100+ languages by YouTube's own caption translation.
Paste video links, Shorts, playlists or channel handles. You get one clean row per video: the full text, timed segments, and optionally SRT, WebVTT, [mm:ss] timestamped text, or AI-ready chunks with their start and end times. The same row carries the video stats: publish date, views, likes, category, duration, thumbnail and whether it is a Short, so one run answers both "what was said" and "how did it do".
YouTube transcripts for AI, SEO and subtitles
- Feed videos to an LLM: summarise a talk, answer questions about a course, or build a RAG index of a channel. Chunks come with timestamps, so answers can cite the exact moment.
- Content and SEO: turn videos into blog posts, show notes and quotes. Research what a niche talks about across hundreds of videos.
- Subtitles: download SRT or VTT in the original language or a translation, ready for an editor or player.
- Research and monitoring: collect everything a channel said about a topic, with publish dates, views and likes next to each transcript.
YouTube transcript API: what you get
- Every URL shape:
watch?v=,youtu.be, Shorts,/live/,/embed/, bare video IDs, playlist URLs, and channels (@handle,/channel/UC…,/c/…,/user/…). - Channels and playlists expanded: set Max videos per playlist or channel. For channels, the newest uploads come first.
- Language control: give an ordered list such as
en, en-GB, es. Creator-uploaded captions are preferred over automatic ones, and you can fall back to the video's own language. - Translation: set Translate to (
ko,de,pt…). YouTube's caption translation keeps every timestamp. - Formats: plain text, timed segments (
start,duration,text), timestamped text, SRT, WebVTT and chunks of a size you choose. - Video stats: title, channel name, channel ID and URL, publish date, view and like counts, category, duration, the largest thumbnail, and Short and live flags. You can add the description, and every row lists the caption languages available.
- No API key or login: no Google Cloud project, no YouTube Data API key and no YouTube account.
- Fair billing: videos without captions, private videos and bad links still get a row with an
error, and you are not charged for them.
How to scrape YouTube transcripts from videos, playlists and channels
{"urls": ["https://www.youtube.com/watch?v=aircAruvnKk","https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi","@3blue1brown"],"languages": ["en"],"translateTo": "","maxVideosPerSource": 50,"includeSegments": true,"includeTimestampedText": false,"includeSrt": false,"includeVtt": false,"chunkChars": 0}
Transcript output: text, timestamps, SRT, VTT and chunks
One row per video. The dataset has Overview, Video stats and Transcript text views, and exports to JSON, CSV, Excel or HTML, or through the API. This row was produced with translateTo: "ko" and chunkChars: 1500:
{"videoId": "aircAruvnKk","url": "https://www.youtube.com/watch?v=aircAruvnKk","title": "But what is a neural network? | Deep learning chapter 1","channelName": "3Blue1Brown","channelId": "UCYO_jab_esuFRV4b17AJtAw","channelUrl": "https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw","publishDate": "2017-10-05T08:11:25-07:00","durationSeconds": 1120,"viewCount": 24251528,"likeCount": 560552,"category": "Education","isShort": false,"isLive": false,"thumbnailUrl": "https://i.ytimg.com/vi/aircAruvnKk/maxresdefault.jpg","language": "ko","languageName": "Korean","originalLanguage": "en","isAutoGenerated": false,"translatedTo": "ko","wordCount": 3218,"segmentCount": 280,"transcript": "이건 숫자 3입니다. 글씨도 엉성하고 해상도도 28x28 픽셀로 아주 낮지만, 당신의 뇌는 아무 문제 없이 이걸 3으로 인식합니다. 뇌가 이렇게 쉽게 뭔가를 인식할 수 있다는 게 얼마나 신기한 일인지 잠시 생각해 보 …","segments": [{"start": 4.22,"duration": 1.18,"text": "이건 숫자 3입니다."},{"start": 6.06,"duration": 4.653,"text": "글씨도 엉성하고 해상도도 28x28 픽셀로 아주 낮지만,"}],"timestampedText": "[0:04] 이건 숫자 3입니다.\n[0:06] 글씨도 엉성하고 해상도도 28x28 픽셀로 아주 낮지만,\n…","chunks": [{"index": 0,"start": 4.22,"end": 171.66,"text": "이건 숫자 3입니다. 글씨도 엉성하고 해상도도 28x28 픽셀로 아주 낮지만, 당신의 뇌는 아무 문제 없이 이걸 3으로 인식합니다. 뇌가 이렇게 …"}],"availableLanguages": [{"code": "ar","name": "Arabic","isAutoGenerated": false,"isTranslatable": true},{"code": "bn","name": "Bangla","isAutoGenerated": false,"isTranslatable": true},{"code": "zh","name": "Chinese","isAutoGenerated": false,"isTranslatable": true}]}
Pricing: one event is one transcript
You pay per transcript delivered: one event is one video that returned a transcript. The price is on the Pricing tab. Videos that have no captions, or cannot be read, are free. You can cap the cost of each run, and the run stops cleanly at the cap.
YouTube transcript API and integrations
- API: start a run with a list of URLs and read the dataset. The API tab has snippets for curl, Node.js and Python.
- Integrations: Make, Zapier, n8n and Google Sheets through Apify integrations.
Use it with AI agents (MCP)
AI assistants such as Claude, ChatGPT and Cursor can find and run this Actor through the Apify MCP server: they search the Store with search-actors, read the input with fetch-actor-details and start a run with call-actor. To give an agent only this tool, connect it to https://mcp.apify.com?tools=hxckya/youtube-transcript-subtitles-scraper. Because the Actor is priced per event, agents can also pay for runs with the MCP server's agentic payments.
Example prompt:
Get the English transcripts of the last 10 videos on @3blue1brown, split into 1,500-character chunks, then summarise each video in three bullets and give the timestamp each bullet comes from.
Good to know: captions, private videos and proxies
- The Actor reads captions that already exist on YouTube, whether uploaded by the creator or generated automatically. It does not download video or audio or run speech recognition, so a video without captions returns an error row, free of charge.
- Publish date, likes, category and the Short flag come from a second, very small request per video. If that request fails, the transcript is still delivered and those fields are
null.likeCountis alsonullwhen YouTube shows no like count for the video. - Only public videos are supported. Private, members-only and some age-restricted videos cannot be read.
- Requests go directly to YouTube first. If YouTube asks to confirm they are not from a bot, which is common from cloud servers, the run switches to the Proxy automatically (Apify residential proxy by default). Turn on Always use the proxy if runs keep getting challenged.
- This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by YouTube or Google. "YouTube" is used only to describe which site the captions come from.
- Transcripts belong to the video creators. Use them in line with YouTube's terms and copyright law. Summaries, research, accessibility and quotes with attribution are common uses.
FAQ
Does it work without a YouTube Data API key?
Yes. There is no API key, Google Cloud project or login to set up. For other people's videos the official YouTube Data API is not an option anyway: its captions.download method requires permission to edit the video and costs 200 quota units per call.
Does it work with YouTube Shorts and live streams?
Yes. Shorts, /live/ and youtu.be links are read like any other video: if YouTube has captions for it, you get the transcript.
Can I get all the transcripts of a channel or playlist?
Yes. Add the channel (@name) or the playlist URL and set Max videos per playlist or channel.
Which languages are available?
Whatever the video has, listed in availableLanguages on each row, plus any translation target YouTube supports through Translate to.
Why does a video return "no captions"?
Its creator turned captions off, or YouTube has not generated any yet. The Actor does not transcribe audio itself. You are not charged for it.
Can I get subtitles for my video editor?
Turn on SRT subtitles or WebVTT subtitles and copy the field into a .srt or .vtt file.
Can I get likes, publish dates and subscriber counts too?
Views, likes, publish date, category and the thumbnail are on every row with a transcript, at no extra cost. For channel subscriber counts, use YouTube Scraper: Channels, Search & Playlists.
Changelog
- 1.1: Video stats on every transcript row: publish date, like count, category, Short flag and the largest thumbnail, next to the views, duration and channel already there, plus a Video stats view. Same price per transcript.
- 1.0: First release. Videos, Shorts, playlists and channels; language preference and translation; text, segments, timestamped text, SRT, VTT and chunks. No charge for videos without captions.