YouTube Transcript Scraper - Subtitles to Text, Pay per Video avatar

YouTube Transcript Scraper - Subtitles to Text, Pay per Video

Pricing

$5.00 / 1,000 transcript delivereds

Go to Apify Store
YouTube Transcript Scraper - Subtitles to Text, Pay per Video

YouTube Transcript Scraper - Subtitles to Text, Pay per Video

Transcripts and subtitles for any list of YouTube videos: full text, timestamped segments, language fallback, translation, title and channel. No browser, residential proxy rotation on blocks, charged only for videos that return a transcript.

Pricing

$5.00 / 1,000 transcript delivereds

Rating

0.0

(0)

Developer

Lee Kung

Lee Kung

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

YouTube Transcript Scraper — subtitles to text, one row per video, pay only for transcripts you get

Turn any list of YouTube videos into clean transcript text with timestamped segments, the language used, whether it was auto-generated, plus title and channel. Give it watch URLs, Shorts, youtu.be links or bare video IDs. Get JSON, CSV or Excel back, or call it from the API, a schedule, an integration or an AI agent.

  • Charged per transcript delivered. A video with captions disabled, a private video, or a block that survives every retry is reported as a row with a status, and costs nothing.
  • No browser. Plain HTTP against YouTube's caption endpoints, so a video takes about a second.
  • Blocks are handled. YouTube blocks datacenter IPs for transcripts; this Actor rotates residential proxy sessions and retries a fixed number of times, then reports blocked instead of looping.
  • Language fallback that makes sense. Your preferred languages first, manually created captions before auto-generated ones, optional translation into any language YouTube supports.

Output

One row per video:

fieldmeaning
statusok, no_transcript, captions_disabled, unavailable, blocked, error
textthe full transcript as one string
segments[]start, duration, text for every caption line (optional)
language, source_language, is_generatedwhat you got and where it came from
available_languages[]every transcript YouTube offers for the video
word_count, segment_count, duration_secondssize of the transcript
title, channel, channel_url, thumbnailpublic metadata (optional)
video_id, urlthe video

Sample row (segments shortened):

{"video_id":"dQw4w9WgXcQ","url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","status":"ok","language":"en","source_language":"en","is_generated":false,"segment_count":61,"duration_seconds":211.6,"word_count":372,"text":"[♪♪♪] We're no strangers to love ...","segments":[{"start":18.8,"duration":3.6,"text":"We're no strangers to love"}],"title":"Rick Astley - Never Gonna Give You Up","channel":"Rick Astley"}

Input

fielddefaultnotes
videoUrlsURLs or 11-character IDs, one per line
languages["en"]preference order, e.g. ["de", "en"]
allowAutoGeneratedtruefall back to YouTube's automatic captions
translateTo""e.g. en to translate a Spanish transcript
includeSegmentstruetimestamped lines next to the full text
includeMetadatatruetitle, channel, thumbnail
concurrency5videos in parallel (1–20)
maxRetries4proxy sessions to try per video when blocked
proxyConfigurationApify residentialrecommended; datacenter IPs get blocked

Minimal input:

{ "videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"] }

Pricing

Pay per transcript delivered (see the Pricing tab). Rows with any status other than ok are free.

Use cases

Summaries and notes from lectures or podcasts · feeding videos into an LLM or RAG pipeline · subtitles for translation · keyword and topic mining across a channel · quote finding with timestamps · accessibility text.

Honesty notes and limits

  • Transcripts are what YouTube provides: manually uploaded captions when they exist, otherwise automatic captions, whose accuracy depends on audio quality. is_generated tells you which you got.
  • Live streams without captions, members-only and age-restricted videos may have no transcript.
  • Public data only. No login, no personal data collected.
  • If YouTube blocks every retry for a video, you get a blocked row and no charge; run again later or raise maxRetries.

Support

Open an issue on the Issues tab. Runs that fail say why, per video, in the error field.