YouTube Transcript API & Subtitles Scraper — Captions, SRT, VTT avatar

YouTube Transcript API & Subtitles Scraper — Captions, SRT, VTT

Pricing

from $0.70 / 1,000 transcripts

Go to Apify Store
YouTube Transcript API & Subtitles Scraper — Captions, SRT, VTT

YouTube Transcript API & Subtitles Scraper — Captions, SRT, VTT

YouTube transcript API: captions of videos, playlists, channels as timestamped text, SRT or WebVTT for $1 per 1,000 transcripts. Fast; videos without captions are free. Unofficial YouTube Transcript API. YouTube transcript scraper, YouTube subtitles, YouTube captions, YouTube channel transcripts.

Pricing

from $0.70 / 1,000 transcripts

Rating

0.0

(0)

Developer

yestrue

yestrue

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

13 days ago

Last modified

Security

Limited permissions

Share

YouTube Transcript & Subtitles Scraper — Captions, SRT, VTT

Get the YouTube transcript of any video, playlist or channel: the whole text in one field, every caption line with start and duration, the language, and SRT or WebVTT with one tick. Fast, no browser.

Price: $1.00 per 1,000 transcripts on the Free plan, from $0.70 on higher Apify plans. Videos without captions and failed videos are free.

Run it now — or start from a ready example: YouTube video transcript (3Blue1Brown neural networks).

VideoChannelLangSegmentsFirst line
The jumping pegs puzzle3Blue1Brownen15It's time for a new puzzle of the m…
The Phone Number puzzle3Blue1Brownen21Here's a surprising fact.
The last IMO problem AI could…3Blue1Brownen1467In 2025, over 600 teenagers from all

Sample rows from a live run on a recent day; every record has more fields.

Daily alerts in 2 minutes

Get the videos that appeared since yesterday, every morning, without running anything by hand.

  1. Turn on "Only new videos since last run" (Input tab, section Monitoring). The first run returns everything and marks every video isNew: true; every later run returns only the videos that no earlier run of the same search delivered. Seen videos are skipped and not charged. "Max videos per playlist or channel" counts what is checked, new or not, so set it above the number you expect.
  2. Put it on a timer. Save your input as a task, then open Schedules → Create new schedule, set the cron expression 0 7 * * * (every day at 07:00 UTC) and add the task.
  3. Get the result where you work. In the task, open Integrations and send each run's new videos by e-mail (Gmail), to Slack or into Google Sheets (see the integration-ready Actors); all integrations.

What it costs: only the new videos are charged — a seen video is skipped before it is delivered. If 3 new videos turn up per day, that is 3 × $0.001 = $0.003 a day, about $0.09 a month on the Free plan (less on higher plans). A day with nothing new costs nothing.

The list of seen videos is kept in a named key-value store (monitor-<actor name>) in your own account for 60 days. Use Watch list name to keep one list when you edit the search, or to keep several lists apart.

Point it at a channel or playlist link: every new upload gets its transcript the next morning. A new video whose captions are not there yet is free and is tried again on the next run.

Use it to:

  • Feed an LLM or a RAG index: the whole transcript sits in one text field, ready to chunk or embed.
  • Summarise or repurpose a video, a playlist or a whole channel into posts, notes or newsletters.
  • Build subtitle files: tick SRT or WebVTT and get them per video.
  • Search what was said across many videos, with a timestamp on every line.
  • Run it on big lists without waste: videos without captions and failed links are reported and cost nothing.

Example output of youtube-transcript-fast

YouTube Transcript Scraper gets the full transcript of any YouTube video, playlist or channel: every line with its timestamp, the whole text in one field, and SRT or WebVTT subtitle files if you want them. No browser is opened, so it is fast: a whole channel of 247 videos took 155 seconds in a live run (2026-10-25), about 0.6 seconds per video. Videos without captions, unavailable videos, bad links and failed fetches are reported in the dataset and cost nothing.

What data does YouTube Transcript Scraper extract?

For every video:

  • videoId, url, title, channel, channelId, lengthSeconds, viewCount – the video
  • status – OK, NO_CAPTIONS or FAILED
  • text – the whole transcript as one string, ready for an LLM, a summary or a search index
  • segments, segmentCount – every line with start and duration in seconds
  • srt, vtt – the transcript as a subtitle file, when you ask for it
  • language – the track you received, e.g. en, de-DE
  • isAutoGenerated – true for YouTube's automatic captions
  • languageMatched – false if your language was missing and another track was returned
  • availableLanguages – every caption track the video has
  • translationFailed – with machine translation on, when YouTube refused it
  • source – the playlist or channel link the video came from
  • error – why a video has no transcript

A link that is not a YouTube video, playlist or channel gets its own INVALID_INPUT record, so you can see what was skipped.

How to use YouTube Transcript Scraper

Video walkthrough (62 seconds, fictional sample data): Get YouTube transcripts for a list of videos (text or SRT)

  1. Open the Actor page and press Try for free. The Input tab is prefilled with a working example, so one click starts a run.
  2. Paste links into YouTube links: regular video links, youtu.be short links, Shorts, embeds, live links, playlist links, channel links (@handle or /channel/…), or bare video ids.
  3. For playlists and channels, set Max videos per playlist or channel (default 50, up to 1,000). A channel gives you its newest uploads first.
  4. Optionally set Language (default en) and tick SRT or WebVTT. A human-written track is chosen over an auto-generated one; if your language is missing you get the video's best track, and the output says so.
  5. Press Start and download the results from the Output tab.

Example output

Values are examples, shortened from a live run:

{
"videoId": "aircAruvnKk",
"title": "But what is a neural network? | Deep learning chapter 1",
"channel": "3Blue1Brown",
"status": "OK",
"language": "en",
"isAutoGenerated": false,
"segmentCount": 286,
"segments": [{ "start": 4.22, "duration": 1.18, "text": "This is a 3." }]
}

How much does it cost?

$0.001 per transcript delivered, $1.00 per 1,000 transcripts, on the Free plan. Higher Apify plans pay less, from $0.0007 per transcript ($0.70 per 1,000) on Gold and above. Videos without captions are free, and so are failed videos, bad links and playlist or channel listings. If your run has a Maximum charge, the Actor stops cleanly when it is reached, delivers what fits and tells you how many videos were left.

Worked example: 247 transcripts of a whole channel cost $0.247 on the Free plan (155 seconds). A channel's newest 1,000 uploads, the maximum per channel, cost at most $1.00, and less when some videos have no captions.

Use it from AI agents (MCP)

The Actor is available through the Apify MCP server. Add https://mcp.apify.com/?tools=highbrow_fame/youtube-transcript-fast to Claude, ChatGPT or any MCP client and the assistant can pull a video's transcript into its context with this Actor's own input fields. You pay per transcript delivered, at the same rate.

The Actor reads caption tracks that YouTube serves publicly for a video, plus the video's public title, channel name, length and view count. It collects no personal contact data: no phone numbers, e-mail addresses or private profiles, so there is nothing to strip under GDPR. Transcripts are the creator's content; use them within copyright law and YouTube's terms. Private and age-restricted videos are reported as FAILED with YouTube's own reason. You remain responsible for how you use the data. This is an independent tool, not affiliated with YouTube.

FAQ

A video came back as NO_CAPTIONS. The video has no captions and no automatic subtitles on YouTube, so there is nothing to download. You were not charged for it.

I asked for Hungarian but got English. The video has no Hungarian track. You get its best available track, a human-written English one if there is one, with languageMatched: false, and availableLanguages lists every language the video does have.

Are automatic captions included? Yes, when a video has no human-written track. isAutoGenerated tells you which one you got.

Can it machine-translate? Optionally, best effort. YouTube limits this heavily: in a test it came through for 1 of 8 videos. When it does not, you still receive the original transcript, marked translationFailed: true, at the normal price. It is off by default because each refusal is retried and runs get slower.

How many videos from a channel? Up to 1,000 per channel or playlist, set by Max videos per playlist or channel. The newest uploads come first.

Last updated: 2026-10-25.

Integrate in 2 minutes: Python, n8n and LangChain

Copy-paste examples for YouTube Transcript & Subtitles Scraper: a Python script (apify-client), an importable n8n workflow and a LangChain tool for AI agents. youtube-transcript-fast integration examples on GitHub

Useful? A short Store review helps — your feedback decides what we improve next.