YouTube Transcript Scraper & API: channels, playlists, captions
Pricing
from $1.00 / 1,000 transcripts
YouTube Transcript Scraper & API: channels, playlists, captions
Get the transcript (captions or subtitles) of any YouTube video as clean text or timestamped segments, from video URLs, whole channels, playlists or search. Any language, auto-generated or manual, plus title, channel, views, likes and date. No API key, $1 per 1,000.
Pricing
from $1.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
Spyridon Pikoulas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
YouTube Transcript Scraper & API
Get the transcript (captions or subtitles) of any YouTube video as clean text, or as timestamped segments, from four kinds of source:
- Videos: any link form works: watch, youtu.be, Shorts, embed or live.
- Channels: the latest uploads of a whole channel, given as a URL,
@handleor channel ID. - Playlists.
- Search: videos from YouTube search results.
Every result also carries the video's title, channel, publish date, duration, views, likes, category, keywords, description, and the list of caption languages the video has.
It needs no browser and no API key, and it is fast: 26 videos from four sources took 4 seconds. It costs $1 per 1,000 transcripts, and videos without captions are free.
What people use it for
- AI and LLM pipelines: summaries, RAG over a channel's back catalogue, training data.
- Content repurposing: turn videos into blog posts, newsletters or social posts.
- Research: what competitors, creators or experts say, searchable as text.
- SEO and marketing: mine the keywords and questions that come up in a niche.
How to scrape YouTube transcripts
- Click Try for free; Apify's free plan covers a first run.
- Fill in any of Videos, Channels, Playlists and Search queries, and set Max videos per channel, playlist or search.
- Click Start, then download the results as JSON, CSV, Excel or HTML, or read them through the API.
Preferred languages decides which captions you get, in order of preference. Manual captions
beat auto-generated ones in the same language. If none of your languages exists, you get the
video's own captions, and availableLanguages lists what the video has.
Turn on Include timestamps for segments: each line with its start time and duration.
{"channels": ["@mkbhd"],"searchQueries": ["how to bake sourdough"],"maxVideosPerSource": 100,"languages": ["en", "es"],"includeTimestamps": true}
Output
{"videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channel": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","publishedAt": "2009-10-24T23:57:33-07:00","durationSeconds": 213,"views": 1820137282,"likes": 19421546,"category": "Music","availableLanguages": [{"code": "en", "name": "English", "autoGenerated": false},{"code": "en", "name": "English (auto-generated)", "autoGenerated": true},{"code": "de-DE", "name": "German (Germany)", "autoGenerated": false}],"language": "en","languageName": "English","isAutoGenerated": false,"text": "[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ …","segments": [{"start": 18.64, "duration": 3.24, "text": "♪ We're no strangers to love ♪"}]}
A video with no captions comes back with its details and an error field, and costs nothing.
Use it as an API
One call runs it and returns the results as JSON (for runs under 5 minutes; longer ones start a run and read its dataset). Apify's Python and JavaScript clients, and its Make, Zapier and n8n integrations, work the same way.
curl -X POST "https://api.apify.com/v2/acts/pikoulas~youtube-transcripts/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], "searchQueries": ["how to bake sourdough"], "maxVideosPerSource": 3}'
AI agents can call it as a tool through Apify's MCP server: https://mcp.apify.com?tools=pikoulas/youtube-transcripts.
How much does it cost to scrape YouTube transcripts?
You pay $0.001 per transcript, which is $1 per 1,000. Videos without captions are free. Runs that go through Apify's residential proxy also pay its traffic, $0.0012 per 100 KB. There are no monthly fees.
Good to know
- YouTube sometimes blocks datacenter IPs. When that happens, the actor switches to Apify residential proxy by itself and retries, and you don't need to set anything up. A transcript takes about 16 KB of its traffic, so about $0.0002 on top.
- Transcripts are the captions YouTube has, either written by the creator or auto-generated. The actor does not do speech-to-text on videos that have no captions.
- Channels give their newest uploads first, Shorts and live streams included.
FAQ
Is it legal to scrape YouTube?
It collects only what YouTube shows publicly, without logging in. Scraping public data is generally legal, but personal data is protected by laws such as the GDPR and the CCPA, and YouTube's terms may limit how you use what you collect. If you're unsure, ask a lawyer; Apify's Is web scraping legal? is a good start.
Something missing or not working?
Open an issue on the Issues tab with the input you used, or ask there for a field you need.