YouTube Transcript Scraper avatar

YouTube Transcript Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
YouTube Transcript Scraper

YouTube Transcript Scraper

Grab the full transcript of any public YouTube video from a URL or ID. Pick the caption language and get clean transcript text plus timed snippets (text, start, duration) with the video details. Uses YouTube’s own InnerTube endpoint — no Data API key, no headless browser.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Assia Fadli

Assia Fadli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

YouTube Transcript Scraper turns any public YouTube video into its full transcript. Give it a single video link (or an 11-character ID), pick a language, and get back the complete transcript as clean text plus a timed, machine-friendly list of snippets — ready to drop into subtitles, summaries, search indexes or an LLM pipeline.

No YouTube Data API key. No headless browser. It talks to YouTube's own InnerTube endpoint (the same one the mobile app uses) with the ANDROID client, so caption downloads aren't blocked by the Proof-of-Origin / PoToken wall that breaks web-based scrapers.

Built for creators, researchers, localisation teams and developers who need reliable transcripts without maintaining scraping infrastructure.

What you get

For the video you provide, the actor writes a single dataset record:

FieldDescription
langThe requested transcript language code (e.g. en)
videoDetailsThe video's InnerTube details (title, author, channelId, lengthSeconds, viewCount, thumbnails, …)
textThe full transcript as one space-joined string
snippetsArray of { text, start, duration } — one entry per caption line, with timings in seconds

If the transcript can't be read (captions disabled, video private/removed, or the language isn't available), the actor still writes a row — { "lang": "...", "error": "..." } — instead of failing.

Input

FieldTypeRequiredDescription
videoUrlstringYouTube video URL (watch?v=, youtu.be/, /shorts/, /embed/, /live/) or a bare 11-char ID. Also accepted as url.
languagestringBCP-47 caption language code. Defaults to en. Also accepted as lang.
proxyCountryCodestringTwo-letter residential-proxy country code (e.g. US, GB, DE). Defaults to US.

Example input

{
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"language": "en"
}

Example output row

{
"lang": "en",
"videoDetails": {
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"author": "Rick Astley",
"lengthSeconds": "212"
},
"text": "Never gonna give you up Never gonna let you down ...",
"snippets": [
{ "text": "Never gonna give you up", "start": 0.0, "duration": 3.5 },
{ "text": "Never gonna let you down", "start": 3.5, "duration": 4.2 }
]
}

How it works

The actor sends a POST to https://www.youtube.com/youtubei/v1/player using the InnerTube ANDROID client, reads the caption track for your chosen language (preferring the auto-generated track and falling back to a manual one), downloads the timedtext XML, decodes HTML entities and parses each line into a { text, start, duration } snippet. Requests route through Apify residential proxies with an automatic fallback to a direct request.

Pricing

This actor uses Apify's pay-per-event model. You're charged once per delivered transcript (transcript-scraped); error rows are never billed.

Use cases

  • Generate subtitles or closed captions for accessibility and translation
  • Feed clean transcript text into summarisation, search or LLM pipelines
  • Build language-learning and study tools from real video captions
  • Archive or repurpose video content as searchable text

Tech

Written in TypeScript on the Apify SDK. HTTP-only, so builds are fast and runs are cheap.

License

MIT © Assia Fadli