YouTube Transcript Scraper avatar

YouTube Transcript Scraper

Pricing

from $0.10 / 1,000 transcript extracteds

Go to Apify Store
YouTube Transcript Scraper

YouTube Transcript Scraper

Extract full transcripts and timestamped captions from any YouTube video in your chosen language and export them as JSON or CSV.

Pricing

from $0.10 / 1,000 transcript extracteds

Rating

0.0

(0)

Developer

Andrew

Andrew

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull the full transcript and timestamped captions from any YouTube video — pick your language, get clean text plus segment-level timing, and export to JSON or CSV.

What you get

  • Full plain-text transcript of each video as a single field, ready for search, summarisation, or LLM input
  • Timestamped segments array with startMs, durationMs, and text per caption line — perfect for jumping to a moment in the video or building chapter markers
  • Language metadata showing the language code returned and whether captions were human-written or auto-generated
  • Available languages list so you can see every caption track the video offers, even when you only kept one
  • Per-video metadata: videoId, title, durationSeconds, uploader
  • Multi-language preference order — list ["en", "es", "fr"] and the actor picks the first one that exists for each video
  • Residential proxy by default so the request reliably returns captions; switch to Auto cascade to save proxy bandwidth

Use cases

  • Content repurposing — turn long videos into blog posts, newsletters, or tweet threads with timestamped quotes
  • SEO research — analyse competitor video scripts and topics for keyword and topic gaps
  • Accessibility — generate searchable text archives of training videos, lectures, and webinars
  • Language learning — pull dual-language transcripts for the same video to build study material
  • Podcast and interview notes — feed transcripts into summarisers to produce show notes and chapter markers

How to use

  1. Paste one or more YouTube URLs into YouTube Video URLs (youtube.com/watch?v=..., youtu.be/..., or youtube.com/shorts/...)
  2. Set Languages in preference order — e.g. en for English-only, or en, es, fr to fall back through Spanish then French
  3. Leave Prefer Human-Written Captions on to favour manual subtitles over auto-generated ones when both exist
  4. Leave Proxy Mode on Residential (default) — switch to Auto if you want to try cheaper paths first
  5. Run the actor — one transcript record per video appears in the Dataset tab

Output format

Each dataset record:

{
"inputUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"videoId": "jNQXAC9IVRw",
"title": "Me at the zoo",
"durationSeconds": 19,
"uploader": "jawed",
"language": "en",
"isAutoGenerated": false,
"transcript": "All right, so here we are in front of the elephants...",
"segments": [
{ "startMs": 0, "durationMs": 2400, "text": "All right, so here we are" },
{ "startMs": 2400, "durationMs": 3100, "text": "in front of the elephants" }
],
"availableLanguages": ["en", "en-US", "es", "fr"],
"proxyUsed": "residential",
"status": "success",
"error": null
}

When no caption track matches the requested languages, status is "error" and error is "No captions available in requested languages"availableLanguages still lists everything the video does have so you can retry with the right code.

Notes & limits

  • Up to 10 videos per run. Schedule multiple runs for larger jobs.
  • Captions must exist on the video. Some music videos and shorts have no captions at all — those return status: "error".
  • Auto-generated captions are word-level transcribed by YouTube and may include noise or incorrect punctuation. The isAutoGenerated flag tells you which kind you got.
  • Region-locked or private videos will fail; try Residential proxy mode if Auto can't fetch them.
  • Language codes are BCP-47, e.g. en, en-US, es, fr, pt-BR. If you specify en and only en-US exists, the actor will use en-US automatically.
  • Only scrape content you have the right to use. Respect copyright and YouTube's Terms of Service.