YouTube Subtitles Extractor avatar

YouTube Subtitles Extractor

Pricing

from $6.00 / 1,000 verified video transcript intelligences

Go to Apify Store
YouTube Subtitles Extractor

YouTube Subtitles Extractor

Extract subtitles from YouTube videos in multiple formats (JSON, SRT, VTT, TXT) with support for playlists, channels, and advanced features like multi-language extraction and text cleaning.

Pricing

from $6.00 / 1,000 verified video transcript intelligences

Rating

0.0

(0)

Developer

AutomateLab

AutomateLab

Maintained by Community

Actor stats

1

Bookmarked

52

Total users

2

Monthly active users

24 days ago

Last modified

Share

What does YouTube Subtitles Extractor do?

YouTube Subtitles Extractor pulls the full subtitles / transcript of any public YouTube video — creator-uploaded captions or auto-generated ones — in 100+ languages, and returns them with timestamps in every format your pipeline needs: JSON segments, SRT, WebVTT, plain TXT, timestamped TXT, and token-efficient Markdown for LLMs and RAG. You pay per delivered transcript — failed extractions are free — and no YouTube API key is required. Run it from the Apify Console, the API, a schedule, or any workflow (n8n, Make, Zapier, Airbyte).

Why use this actor?

  • Success-only billing. You are charged transcript-report only when a transcript is actually delivered. Videos with captions disabled, videos blocked by YouTube's bot protection, unavailable videos, and invalid URLs produce an error record and cost nothing.
  • AI-ready output. The formats.markdown field renders a clean, timestamped Markdown transcript — paste it straight into RAG ingestion, summarization, or content repurposing workflows.
  • Real metadata. Video title, channel name, and thumbnail are fetched via YouTube's public oEmbed endpoint (no scraping of profile pages needed).
  • Bot-protection aware. Runs default to residential proxies with a fresh session per video and one automatic retry on IP-level blocks. You can switch to cheaper datacenter proxies via proxyType.
  • Interface you can trust. Every run pushes a dataset record for every input URL — success or explicit error — so your monitoring never sees a silently empty dataset.

How to use it

  1. Open the actor's page and click Try for free (or Run).
  2. Paste one or more YouTube video URLs into urls (watch links, youtu.be, /embed/, /shorts/, /live/ and music.youtube.com all work).
  3. Optionally set preferred languages (ISO 639-1, e.g. en, es, de), the number of videos (maxResults, up to 1000) and concurrency (1–10).
  4. Click Start. Results stream into the dataset as each video finishes.

Input

{
"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"languages": ["en"],
"formatTranscript": true,
"includeMetadata": true,
"maxResults": 1,
"concurrency": 1,
"proxyType": "RESIDENTIAL"
}
FieldTypeNotes
urlsarray (required)YouTube video URLs to extract transcripts from
languagesarrayPreferred transcript languages; falls back to the video's available language
formatTranscriptbooleanAdd SRT / VTT / TXT / Markdown / timestamped TXT to each record (default true)
includeMetadatabooleanAdd title, channel, thumbnail via oEmbed (default true)
maxResultsintegerHow many videos from urls to process (1–1000, default 1)
concurrencyintegerParallel extractions (1–10, default 1)
proxyTypeenumRESIDENTIAL (default, recommended) or DATACENTER
debugModebooleanForce a minimal single-video self-test against a stable default video

Output

{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"videoId": "dQw4w9WgXcQ",
"success": true,
"language": "en",
"isAutoGenerated": false,
"segmentCount": 61,
"segments": [{ "text": "We're no strangers to love", "start": 5.36, "duration": 2.84, "end": 8.2 }],
"fullText": "We're no strangers to love You know the rules and so do I ...",
"metadata": { "title": "Rick Astley - Never Gonna Give You Up", "channel": "Rick Astley", "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg" },
"formats": { "json": [], "srt": "1\n00:00:05,360 --> ...", "vtt": "WEBVTT ...", "txt": "...", "txtWithTimestamps": "[00:00:05] We're no strangers to love", "markdown": "# Video Transcript ..." },
"extractedAt": "2026-09-24T23:18:14.622188+00:00"
}

Failed extractions return a record with success: false and a plain-language error field explaining exactly what happened — free of charge.

Data table

FieldMeaning
url, videoIdSource video
successTrue when a transcript was delivered
languageLanguage code of the delivered transcript
isAutoGeneratedTrue when YouTube auto-generated the captions
segmentsTimestamped text segments (text, start, duration, end)
fullTextWhole transcript as one string
metadataTitle, channel, thumbnail (oEmbed)
formatsjson / srt / vtt / txt / txtWithTimestamps / markdown
errorPresent only on free, failed extractions

Pricing — how much does it cost to extract YouTube transcripts?

Pay-per-event, no subscription, no monthly fee:

  • transcript-report — $0.01 on the FREE plan, $0.00867 (BRONZE), $0.00733 (SILVER), $0.006 (GOLD and above) per successfully delivered transcript.
  • apify-actor-start — $0.00005 per run (one event per GB of memory).
  • Charged: one transcript-report event per transcript delivered (success: true).
  • Not charged: transcripts disabled by the creator, no transcript in the requested languages, YouTube bot-blocks (after retry), unavailable videos, empty transcripts, invalid URLs, invalid input, and anything skipped after your spend cap is reached.

Apify platform usage (compute + proxy) is billed by Apify on your plan as usual.

Tips & advanced options

  • Batching: pass up to 1000 urls with maxResults 10–50 and concurrency 5 for portfolio-scale runs; keep concurrency low if you see YouTube rate limiting.
  • Cost control: set a monthly spend limit on the run or task — when the cap is reached the actor stops gracefully and never bills undelivered work.
  • Language fallback: if none of your languages exist for a video, the video's best available transcript language is delivered and reported in language / isAutoGenerated.

FAQ, disclaimers & support

  • A video costs nothing but returns success: false — why? The creator disabled captions, YouTube blocked the request, or the video is unavailable. Error records are always free.
  • Is scraping YouTube legal? Extracting publicly available transcripts for analysis is generally acceptable use; respect YouTube's Terms of Service and local law. Don't use this actor for content you don't have rights to process.
  • Need a feature? Open an issue on the Issues tab — custom extraction solutions are available.

Built by AutomateLab (red.cars) — see the full actor portfolio on the store page.