YouTube Transcript Scraper: Channels, Playlists & Search
Pricing
$3.00 / 1,000 transcripts
YouTube Transcript Scraper: Channels, Playlists & Search
Get YouTube transcripts (captions and subtitles) as plain text, timestamped segments or SRT for videos, Shorts, whole channels, playlists and searches. Pick the language, fall back to auto-generated captions, and get title, channel, publish date, views and duration with each one.
Pricing
$3.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
Wulfcare Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
YouTube Transcript Scraper
Transcripts of YouTube videos (captions and subtitles) as plain text, timestamped segments or SRT. You can ask for:
- Videos and Shorts: paste any YouTube link (watch, youtu.be, Shorts, live, embed) or a bare video id.
- Whole channels: an
@handleor channel URL expands into its videos, newest first. It can also take the channel's Shorts and past live streams. - Playlists: any public playlist, including a channel's full upload list.
- YouTube searches: transcripts of the videos YouTube lists for a search term.
Each transcript comes with the video's title, channel, publish date, duration, views, category, keywords, description and thumbnail. You also get a list of every caption language the video has.
Need just the video data, not what's said? The Free YouTube Scraper gets views, likes, comment counts, dates, tags and channel stats for videos, Shorts, channels and searches at no charge per video.
Pick the language: en gets English, and ["es", "en"] gets Spanish if there is one, else English. Captions made by the creator are used before YouTube's auto-generated ones. When a video has none of your languages, you get its original language, or you can skip it for free. A video with no captions, a private or deleted video or a typo never crashes the run. It gets a free row saying what's wrong, and the other videos carry on.
What people use it for
- Feeding LLMs and RAG pipelines: clean transcript text of a whole channel or playlist, ready to chunk and embed. Segment timestamps let answers link back to the exact moment.
- Content repurposing: turn videos into blog posts, newsletters, show notes and social posts.
- Research and monitoring: what competitors, creators or experts say about a topic, across hundreds of videos, searchable as text.
- Subtitles: SRT files for video editors, translation workflows and accessibility.
- Education and note-taking: full lecture and course transcripts with timestamps.
- SEO and keyword research: what the top videos for a search actually talk about.
How to use it
- Add videos, channels or playlists (any mix), and/or YouTube searches.
- Set Max videos per channel, playlist or search (default 20, 0 = all).
- Set the transcript language (default
en), or leave it empty to get each video's original language. - Run it, then download JSON, CSV or Excel, or call the API.
What you get: one row per video
{"input": "https://www.youtube.com/watch?v=UF8uR6Z6KLc","videoId": "UF8uR6Z6KLc","url": "https://www.youtube.com/watch?v=UF8uR6Z6KLc","title": "Steve Jobs' 2005 Stanford Commencement Address","channelName": "Stanford","channelId": "UC-EnprmCZ3OXyAoG7vjVNCA","channelUrl": "https://www.youtube.com/channel/UC-EnprmCZ3OXyAoG7vjVNCA","publishedAt": "2008-03-08T01:17:20Z","durationSeconds": 904,"viewCount": 49151066,"category": "Education","language": "en","languageName": "English - English","isAutoGenerated": false,"wordCount": 2262,"text": "This program is brought to you by Stanford University. Please visit us at stanford.edu. Thank you. I am honored to be with you today ...","segments": [{ "start": 7.05, "duration": 5.981, "text": "This program is brought to you by Stanford University." },{ "start": 13.031, "duration": 2.001, "text": "Please visit us at stanford.edu" }],"srt": null,"availableLanguages": [{ "language": "ar", "name": "Arabic", "isAutoGenerated": false },{ "language": "en", "name": "English (auto-generated)", "isAutoGenerated": true },{ "language": "en", "name": "English - English", "isAutoGenerated": false }],"isLive": false,"keywords": ["steve jobs", "stanford", "commencement"],"description": "Drawing from some of the most pivotal points in his life, Steve Jobs ...","thumbnail": "https://i.ytimg.com/vi/UF8uR6Z6KLc/hqdefault.jpg","error": null}
textis the whole transcript as one string.segmentshas the caption lines withstartanddurationin seconds.srtis optional (off by default).inputis what you entered (the video, channel, playlist or search the video came from), so you can group results.- Every column is on every row (
nullwhen there's no value), and the columns don't change between runs.
When there's no transcript
A free row with error set, and whatever video details YouTube gave:
{ "videoId": "LXb3EKWsInQ", "title": "COSTA RICA IN 4K 60fps HDR (ULTRA HD)", "text": null, "error": "This video has no captions (neither uploaded nor auto-generated)" }
Other errors: Video unavailable: This video is private, Age-restricted video: YouTube only shows it to signed-in users, No es captions. Available: en, en (auto) (with Skip the video), Channel not found, The playlist does not exist., This channel has no Shorts tab.
Pricing
$3 per 1,000 transcripts ($0.003 each). You only pay for rows with a transcript. Videos without captions, unavailable videos and bad inputs are free.
Input examples
One video
{ "urls": ["https://www.youtube.com/watch?v=UF8uR6Z6KLc"] }
A channel's last 100 videos and Shorts, plain text only
{ "urls": ["https://www.youtube.com/@3blue1brown"], "channelTabs": ["videos", "shorts"], "maxVideosPerSource": 100, "includeSegments": false }
Every video in a playlist, with SRT subtitles
{ "urls": ["https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi"], "maxVideosPerSource": 0, "includeSrt": true }
Spanish transcripts of the top 50 videos for a search, skipping videos without Spanish
{ "searchQueries": ["receta paella"], "maxVideosPerSource": 50, "languages": ["es"], "ifLanguageMissing": "skip" }
Good to know
- Languages come from YouTube. You get captions the creator uploaded, or YouTube's auto-generated ones. Auto-generated captions are only in the language spoken in the video. This Actor doesn't machine-translate;
availableLanguagesshows what each video has. - Auto-generated captions have no punctuation on some videos and may mishear names. Turn off Use auto-generated captions to accept only captions made by a person.
- Speed: each IP address YouTube trusts gives about 40 transcripts a minute (about 70 with Publish date and category off). YouTube refuses an IP for about half an hour if it asks faster, so the Actor paces every IP and spreads the work over all the IPs YouTube accepts. A bigger proxy pool makes big jobs faster. If every IP needs a break, the run waits for one to recover and carries on (the run's status says so).
- YouTube distrusts many datacenter IP addresses and asks them to "sign in to confirm you're not a bot". The Actor finds IPs YouTube accepts and keeps using them. If every IP is refused from the start, the run stops with a clear message, and you pay nothing for the failed videos. Run again later, or choose residential proxy.
- Live streams have captions once the stream has ended. Premieres and upcoming streams have none yet.
- Age-restricted and members-only videos need a signed-in account, so they come back as free error rows. Everything else comes from public YouTube, as a logged-out visitor sees it. No Google account is used.
Other Actors by Wulfcare Data
- Google Hotels Prices Scraper: every booking site's price for any hotel and dates, and hotel searches
- Free YouTube Scraper: YouTube videos, Shorts, channels and searches with views, likes, comments and channel stats, free
- App Store Scraper: Apple App Store reviews (no 500 cap), app details, search and charts
- Google Play Scraper: Google Play reviews, app details, data safety and charts
- Google Trends Scraper: interest over time, rising queries and Trending Now
- Google Jobs Scraper: job listings from Google Jobs
Found a problem or need a field? Open an issue on the Issues tab.