YouTube Transcript
Pricing
from $3.50 / 1,000 transcript delivereds
YouTube Transcript
Extract YouTube transcripts and subtitles from videos, channels, playlists or search as text, timestamps, SRT or VTT. Adds publish date, views, length, description and thumbnail. Only-new-videos mode for schedules. Videos without captions are free and never fail the run. Pay per transcript.
Pricing
from $3.50 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get the full transcript of any YouTube video, channel, playlist or search as clean text, timestamped segments, SRT or VTT, with the video's publish date, views, length, description and thumbnail. Ready for AI summaries, RAG, n8n workflows, subtitles or content research.
Why this one
- Videos, channels, playlists and searches in one field. Paste a channel (
/@handle), a playlist or a YouTube search URL and get the transcripts of its videos, with a limit per source, a "published after" date and Shorts on or off. - Only new videos since the last run. Turn on
onlyNewVideos, schedule the Actor daily and each run transcribes only the videos you did not get yet. - Videos without captions never fail your run. They come back as an item with
errorCode(for exampleNO_CAPTIONS) and are not charged, so a single-video call from n8n, Make or Zapier does not break your workflow. - Checks twice before saying "no captions". Captions are read straight from YouTube's player with two different app clients, and a second method is tried before a video is reported as having no captions.
- Video details included:
publishedAt,viewCount,lengthSeconds,description,thumbnailUrl,channelId, title and channel, at no extra cost. - Pick the captions you want: preferred languages in order, manual or auto-generated only, and optional translation.
- SRT and VTT included at the same price, next to the plain text and segments.
- Drop-in replacement: accepts the input field names of other transcript scrapers (
videoUrl,urls,startUrls,youtube_url,targetLanguage), so you can switch without changing your integration.
Use cases
- Feed video transcripts to ChatGPT, Claude or your RAG pipeline to summarize or answer questions about videos.
- Monitor a channel: a daily schedule with
onlyNewVideossends each new video's transcript to your workflow. - Turn a course playlist, a podcast channel or the top results of a search into searchable text for SEO, notes or blog posts.
- Download subtitles as SRT or VTT for editing or re-uploading.
Input
{"videoUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw","https://www.youtube.com/@veritasium","https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo","https://www.youtube.com/results?search_query=rust+tutorial"],"searchQueries": ["receita de bolo"],"maxVideosPerSource": 10,"publishedAfter": "2026-01-01","includeShorts": false,"onlyNewVideos": false,"languages": ["en", "es"],"captionType": "any","includeSegments": true,"subtitleFormats": ["srt"],"maxItems": 50}
- Videos: watch, youtu.be, shorts, embed and live URLs, or plain 11-character IDs. Duplicates are removed.
- Channels:
/@handle,/channel/UC...,/c/nameand/user/name, listed newest first. WithincludeShortsoff you get regular videos and past live streams; with it on, Shorts too. - Playlists: any URL with
list=that is not a single watch URL, or a bare playlist ID. Videos come in playlist order. - Searches: YouTube search URLs (
/results?search_query=..., filters in the URL are kept) or plain terms insearchQueries. Only videos are taken. maxVideosPerSourcelimits each channel, playlist or search;maxItemslimits the whole run.- Videos are processed in parallel, so items land in the dataset in the order they finish; sort by
publishedAtif you need a timeline. publishedAfterskips older videos for every input; skipped videos produce no item and cost nothing.onlyNewVideosstores the IDs of delivered transcripts per channel, playlist or search in a named key-value store in your account (youtube-transcript-only-new-videos). Videos that had no captions are tried again on the next run, free.
Switching from another transcript scraper? These work as is: {"videoUrl": "https://www.youtube.com/watch?v=...", "targetLanguage": "en"}, {"urls": ["..."]}, {"startUrls": [{"url": "..."}]}, {"youtube_url": "..."}.
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)","channel": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","publishedAt": "2009-10-25T06:57:33+00:00","viewCount": 1815077270,"lengthSeconds": 213,"thumbnailUrl": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/sddefault.webp","description": "The official video for “Never Gonna Give You Up” by Rick Astley ...","isLiveContent": false,"category": "Music","language": "en","languageName": "English","isAutoGenerated": false,"availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419", "en"],"text": "[♪♪♪] ♪ We're no strangers to love ♪ ...","wordCount": 487,"durationSeconds": 211.3,"segments": [{ "text": "[♪♪♪]", "start": 1.36, "duration": 1.68 }],"srt": "1\n00:00:01,360 --> 00:00:03,040\n[♪♪♪]\n...","error": null,"errorCode": null,"sourceUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","scrapedAt": "2026-09-13T01:30:00+00:00"}
lengthSecondsis the real length of the video;durationSecondsis where the last caption ends.sourceUrlis the input the video came from (the video itself, or the channel, playlist or search).
Items that could not be transcribed have error and errorCode filled in (and the video details when YouTube returned them) and are not charged:
| errorCode | Meaning |
|---|---|
NO_CAPTIONS | The video has no captions |
NO_CAPTIONS_IN_LANGUAGE | No captions of the requested caption type |
VIDEO_UNAVAILABLE / VIDEO_UNPLAYABLE | Private, removed or region-locked video |
AGE_RESTRICTED | Age restricted video |
LIVE_NOT_ENDED | Live stream still running, upcoming, or its recording is not available |
INVALID_VIDEO_ID | Not a valid video |
BLOCKED | YouTube blocked every attempt; try again |
The run itself only fails when nothing was delivered and YouTube blocked the requests, or when no channel, playlist or search could be listed.
Pricing
From US$ 3.50 per 1,000 transcripts delivered, no monthly fee. US$ 5.00 on the Free plan, lower on paid Apify plans:
| Apify plan | Per 1,000 transcripts |
|---|---|
| Free | US$ 5.00 |
| Starter (Bronze) | US$ 4.50 |
| Scale (Silver) | US$ 4.00 |
| Business (Gold) and above | US$ 3.50 |
One charge = one video whose transcript was delivered, whatever the length or format. Listing channels, playlists and searches is free, and so are videos with captions disabled, unavailable or blocked.
How to use
- Console: paste the URLs, click Start, download JSON, CSV or Excel.
- API:
POST https://api.apify.com/v2/acts/scrapewise~youtube-transcript/run-sync-get-dataset-items?token=YOUR_TOKENwith the input above as the body. - Schedule: run daily over your channels with
onlyNewVideoson, using Apify Schedules. - Integrations: n8n, Make, Zapier and Google Sheets through the Apify integrations.
FAQ
Do I need to configure anything? No. Paste video, channel, playlist or search URLs and click Start. Everything else has working defaults.
Am I charged for videos without captions? No. You are charged once per video whose transcript was delivered. Failed videos, listing channels and playlists, and skipped videos are free.
What does "per 1,000 transcripts" mean? Each delivered transcript is one charge, whatever the video length or output format. 1,000 videos with transcripts = the price shown.
Can I get transcripts in a specific language? Yes. Put language codes in languages in order of preference (for example ["es", "en"]). If none exists, the first manual caption is used, then the auto-generated one.
Can I get only the videos a channel published since my last run? Yes. Turn on onlyNewVideos and schedule the Actor. Each run delivers only new videos.
How do I use it from n8n, Make or Zapier? Use the Apify integration and call scrapewise/youtube-transcript with the input above. One video per call works well, and a video without captions returns an item with errorCode instead of failing the workflow.
Can I use it from an AI agent (MCP)? Yes, through the Apify MCP server, like any Apify Actor.
It said NO_CAPTIONS but the video has captions. Open an issue with the video URL. We check two YouTube clients and a second method before reporting no captions, and we fix reported cases fast.
Does it transcribe audio? No. It reads the captions YouTube already has (manual or auto-generated), which covers most videos.
Changelog
- 2026-09-14: lower price, from US$ 3.50 per 1,000 on paid plans (US$ 5.00 on Free).
- 2026-09-13: shorter title, simpler input (advanced options grouped), FAQ.
- 2026-09-12: channels, playlists and searches; only-new-videos mode; publish date, views, length, description and thumbnail; captions read straight from YouTube's player (about 3x cheaper to run, same success rate);
LIVE_NOT_ENDEDerror code. - 2026-09-12: videos without captions no longer fail the run; stable
errorCode; SRT and VTT output; caption type; accepts input field names of other transcript scrapers. - 2026-09-10: first release.
Limitations
- Only videos that have captions (manual or auto-generated) can be transcribed. This Actor does not transcribe audio.
- Translation uses YouTube's own translation, and YouTube refuses most of these requests. When it does, the original language is delivered and the reason is recorded in
translationError. - Age-restricted videos and live streams that are still running cannot be transcribed.
publishedAtcomes from a separate lightweight request; in rare cases it can be empty while the transcript is delivered.- YouTube blocks most datacenter IPs, so residential proxy is the default. Keep it on.
- Something broke? Open an issue on the Actor page. Issues are answered within 12 hours.
This Actor collects only public data and respects the site's terms.
Keywords: youtube transcript, youtube transcripts, youtube transcript scraper, youtube to text, youtube transcript api, youtube channel transcripts, youtube playlist transcript, download youtube subtitles, youtube srt.