Apify Actor · early access

YouTube Transcripts

The transcript of any YouTube video as clean dataset rows: timed segments and full text, in the language you ask for. Manual captions first, auto-generated as fallback. No login, no browser, no API key. A free status row says why when a video has no captions.

Early access: no Actor fee yet. You pay only Apify platform usage.

Example: the input {"videos": ["https://www.youtube.com/watch?v=5MuIMqhT8DM"], "language": "en"} returns one row. Real run on 09/11/2026: title "Sleep Is Your Superpower | Matt Walker | TED", channel TED, 1158 seconds, language en, manual captions (isAutoGenerated false, languageMatched true), 327 segments. The first segment starts at 0.829 seconds, lasts 1.5 seconds and says "Thank you very much." Another segment starts at 9.204 seconds and says "Men who sleep five hours a night". A video with no captions (Big Buck Bunny, from Blender) returns a free status row, no_captions.Real run on 09/11/2026, public TED talk. Independent tool, not affiliated with YouTube or Google.
  • 16 / 16Videos with captions delivered on Residential, 3 rounds of 20 videos (a small test)
  • EN · PT · ES · KOLanguages in our test
  • 2 outputsTimed segments and full text
  • Early accessNo Actor fee yet

What it does

Any YouTube video, as timed text.

Takes YouTube video URLs or ids and returns one dataset row per video. Each row carries videoId, url, title, channel, channelId, lengthSeconds, language, isAutoGenerated, languageMatched, requestedLanguage, status and scrapedAt, plus segments (start and duration in seconds, and text) and/or text (all segments joined).

Example: the TED talk “Sleep Is Your Superpower” (1158 s) comes back with its manual English captions in 327 segments; the first one starts at 0.829 s and says “Thank you very much.”

Language. Exact code first (en), then the same base language (pt also matches pt-BR); manual captions before auto-generated ones. If the video has nothing in your language, you get its original-language track and languageMatched is false, so you can tell. In our test, Portuguese and Spanish videos requested in English came back that way, in their own language and auto-generated.

Free status rows. no_captions (the video has none), video_unavailable (removed, private, members-only, region-locked, age-restricted), invalid_input (not a YouTube video) and source_unavailable (YouTube kept refusing after retries). In our 20-video test there were 3 videos without captions and 1 that does not exist; they came back as status rows.

Using transcripts to see how AI assistants quote and cite a business? See the AI visibility audit.

Inputs

videos
YouTube video URLs (watch, youtu.be, shorts, embed, live) or 11-character ids. Up to 1000 per run; duplicates are dropped.
language
Language code of the captions you want: en (default), pt, pt-BR, es...
outputFormat
both (default): segments and full text. segments: timed segments only. text: full text only.
proxyConfiguration
Apify Proxy, Residential group by default. See “Why Residential” below.

Use cases

What it is built for.

  1. Datasets for research, LLMs and RAG

    Turn videos into text you can search, summarise, embed or feed to a model.

  2. Content repurposing

    Start from the transcript to write articles, newsletters, show notes or quotes.

  3. SEO, GEO and citations

    See what a video actually says before you cite it or compare it with what AI assistants quote.

  4. Accessibility and subtitle review

    Check which videos have captions, in which language, and whether they are manual or auto-generated.

  5. Competitor video monitoring

    Pull the transcripts of videos from channels you follow and look for topics and claims.

Proxy

Why Residential is the default.

From datacenter IPs, YouTube stops answering normally: the player request starts coming back LOGIN_REQUIRED (a bot check) after one or two videos, and caption downloads get HTTP 429. So the Actor sends both the player request and the caption download through Apify Proxy, with a fresh IP on each retry.

That is why proxyConfiguration defaults to the Residential group, also for API runs and Store tests that send no proxy input. Residential traffic is part of your Apify platform usage.

This was a small test: 20 videos, 3 rounds. It is not a guarantee, and we have not measured how YouTube reacts to hundreds of videos in one run.

Same 20 videos, 9 Nov 2026

No proxy
1 of 16 videos with captions delivered
Datacenter proxy
4 of 16
Residential (default)
16 of 16, in 3 rounds out of 3
The other 4 videos
3 without captions and 1 that does not exist: free status rows

Price

Early access, no Actor fee yet.

Early accessno Actor fee yet

Early access: no Actor fee yet. You pay only standard Apify platform usage, including the Residential proxy. In our tests on 9 Nov 2026 (3 rounds of 20 videos on Residential) platform usage averaged about US$ 0.40 per 1,000 videos (range US$ 0.21–0.51). Pay-per-result pricing may be introduced later; Apify notifies users 14 days in advance.

Open on Apify

What you pay

Actor fee
None yet
Apify platform usage
Standard Apify rates, including Residential proxy
Status rows
Free rows that say why a video has no transcript

Good to know

Limits, stated plainly.

What the rows can and cannot tell you.

  • Not affiliated with YouTube or Google. Independent tool.
  • Only captions the video already has: no audio transcription and no automatic translation.
  • Live streams and premieres in progress usually have no captions yet.
  • YouTube may change its clients without notice, and the Actor may need an update when that happens.
  • Scraping YouTube is subject to YouTube’s terms of service. Use reasonable volumes and check what you may do with the text.
  • The volume tested is small (20 videos per run, 3 rounds). Auto-generated captions can contain recognition errors that come from YouTube, not from the Actor.