YouTube Subtitle Scraper - Transcripts & Captions avatar

YouTube Subtitle Scraper - Transcripts & Captions

Pricing

from $2.00 / 1,000 results

Go to Apify Store
YouTube Subtitle Scraper - Transcripts & Captions

YouTube Subtitle Scraper - Transcripts & Captions

Extract YouTube video subtitles and transcripts as timestamped segments, manual or auto-generated, in any available language — no API key needed.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Thirdwatch

Thirdwatch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

YouTube Subtitle Scraper — Transcripts & Captions

Thirdwatch portfolio: 5K users across 97 public Actors, 2M+ records delivered, and >99% run success. Explore all Thirdwatch Actors.

Extract subtitles and transcripts from public YouTube videos as clean, timestamped segments. Works with both manually uploaded captions and YouTube's auto-generated tracks, in any language the video offers — no YouTube API key required.

Use it for transcript datasets, video summarization, translation pipelines, accessibility audits, and content research.

Why this Actor

  • Manual + auto-generated captions: prefers human-written tracks when preferManual is set, falls back to auto-generated.
  • Any language: pass ISO codes like en, hi, es — or omit to take the best available track and get the full availableLanguages list in output.
  • Timestamped segments: every row carries the full segment list (startMs, durationMs, text) plus a joined transcript string.
  • Per-video sticky sessions: each video gets its own residential proxy session with a fresh-exit retry on rate limits, so multi-video batches stay reliable.
  • Rich video metadata: title, channel, channelId, duration, view count, and upload date on every row.

Quick start

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"languages": ["en"],
"preferManual": true,
"proxyCountry": "US"
}

Returns one dataset row per video with all caption segments.

Input

FieldRequiredDescription
videoUrlsYesYouTube watch URLs or video IDs.
languagesNoPreferred caption languages, ISO 639-1 (e.g. en, hi). Default: first available.
preferManualNoPrefer human-uploaded captions over auto-generated. Default: true.
proxyCountryNoTwo-letter residential proxy country. Recommended for batches — YouTube rate-limits shared exits.

Output

FieldDescription
videoId, urlVideo identity and canonical URL.
title, channel, channelIdVideo and channel metadata.
duration, viewCount, uploadDateLength in seconds, views, publish date.
language, captionSourceTrack language and whether it is manual or auto.
availableLanguagesAll caption languages the video offers.
segmentsList of {startMs, durationMs, text} caption segments.
segmentCount, transcriptSegment count and the joined plain-text transcript.

Example row:

{
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"channel": "Rick Astley",
"language": "en",
"captionSource": "manual",
"segmentCount": 61,
"segments": [{"startMs": 18170, "durationMs": 2290, "text": "We're no strangers to love"}],
"transcript": "We're no strangers to love ..."
}

Notes & limitations

  • Heavily scraped videos occasionally hit YouTube 429 on the caption file itself; the Actor retries once on a fresh residential exit. A small fraction of videos may still fail — they return an error row rather than failing the run.
  • Residential proxy traffic is the main cost; expect ~$0.01 per video.