YouTube Transcript Extractor – Text, SRT, VTT & Timestamps avatar

YouTube Transcript Extractor – Text, SRT, VTT & Timestamps

Pricing

from $3.00 / 1,000 transcript extracteds

Go to Apify Store
YouTube Transcript Extractor – Text, SRT, VTT & Timestamps

YouTube Transcript Extractor – Text, SRT, VTT & Timestamps

Get YouTube transcripts & subtitles from videos, Shorts, playlists and channels. Plain text, timestamped JSON, SRT or VTT, any language + auto-translate. Only $3 per 1,000 transcripts; failed videos are free.

Pricing

from $3.00 / 1,000 transcript extracteds

Rating

0.0

(0)

Developer

Siftwright

Siftwright

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

YouTube Transcript Extractor

Get the transcript (captions / subtitles) of any YouTube video in seconds — as plain text, timestamped JSON segments, SRT or WebVTT. Paste video links, Shorts, whole playlists or entire channels, pick a language (or auto-translate), and download the results as JSON, CSV, Excel or via API.

Price: $3 per 1,000 transcripts ($0.003 each). You only pay for transcripts that are actually extracted — videos without captions, private videos and errors are free. Video metadata is included at no extra charge.

Real input example Real dataset output Real SRT subtitle output

Why teams choose this extractor

This Actor
💵 Price$3 per 1,000 transcripts, no monthly rental
🛡️ Pay only for successCaption-less, private and failed videos cost $0 (some tools bill every result row, even failures)
🎁 Free extrasTitle, channel, views, duration, publish date and available languages at no extra charge
📦 Every format in one runPlain text, timestamped JSON, SRT and VTT
🌍 Any languagePick a language or auto-translate into 100+ languages
⚡ Bulk-readyWhole playlists and channels, processed in parallel
🤖 AI-agent readyCallable from Claude, ChatGPT & Cursor through Apify's MCP server

What you can use it for

  • 🤖 AI & RAG pipelines – feed clean transcript text into ChatGPT, Claude, LangChain, LlamaIndex or a vector database.
  • 📝 Content repurposing – turn videos into blog posts, newsletters, social posts and show notes.
  • 🔍 Research & SEO – analyze what competitors and creators say, find keywords, quotes and topics at scale.
  • 🎓 Education & accessibility – study notes, summaries and subtitle files (SRT/VTT) for editors.
  • 📊 Media monitoring – track mentions of brands, products or people across channels.

Features

  • ✅ Videos, Shorts, live replays, playlists and channels (/@handle, /channel/UC…, bare video IDs)
  • ✅ Human-made captions preferred, automatic fallback to auto-generated captions
  • ✅ Any language + auto-translate into 100+ languages via YouTube's built-in translation
  • ✅ Output as plain text, timestamped segments, SRT and VTT
  • ✅ Free metadata: title, channel, duration, views, publish date, description, keywords, thumbnail
  • ✅ Lists the languages available for every video
  • ✅ Fast & lightweight (no browser), parallel processing, automatic rate-limit handling
  • ✅ Failed / caption-less videos are never charged

How to use

  1. Click Try for free.
  2. Paste one or more YouTube URLs into YouTube URLs or IDs.
  3. (Optional) choose a language, translation and output formats.
  4. Click Start and download your transcripts from the Output tab.

Input example

{
"urls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://youtu.be/jNQXAC9IVRw",
"https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI",
"https://www.youtube.com/@mkbhd"
],
"language": "en",
"translateTo": "",
"outputFormats": ["text", "segments", "srt"],
"maxVideosPerSource": 20
}
FieldDescription
urlsVideo / Shorts / playlist / channel URLs or bare video IDs
languagePreferred language codes in order, e.g. en or es,en
translateToTranslate the transcript into this language code, e.g. de
preferManualPrefer creator-uploaded captions over auto-generated (default true)
outputFormatsAny of text, segments, srt, vtt
includeMetadataInclude free video metadata (default true)
maxVideosPerSourceMax videos taken from each playlist or channel (newest first)

Output example

{
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"status": "ok",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"durationSeconds": 213,
"viewCount": 1700000000,
"publishDate": "2009-10-24",
"language": "en",
"isAutoGenerated": false,
"isTranslated": false,
"availableLanguages": [{ "code": "en", "name": "English", "autoGenerated": false }],
"wordCount": 487,
"text": "♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ …",
"segments": [
{ "start": 18.64, "duration": 3.24, "text": "♪ We're no strangers to love ♪" }
],
"srt": "1\n00:00:18,640 --> 00:00:21,880\n♪ We're no strangers to love ♪\n…"
}

Videos without a transcript are returned with "status": "no_transcript" and an error message (and are not charged), so you always know what happened to every input.

Pricing

Pay-per-event: $0.003 per extracted transcript (= $3 per 1,000). No monthly rental, no charge for failed videos, playlists/channel listing or metadata. Apify's free plan gives you monthly credits so you can try it for free.

Quick start in Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("siftwright/youtube-transcript-extractor").call(run_input={
"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"outputFormats": ["text", "srt"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["wordCount"], "words")

Use it via API

curl -X POST "https://api.apify.com/v2/acts/siftwright~youtube-transcript-extractor/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"outputFormats":["text"]}'

Works with Python and JavaScript API clients, Make, Zapier, n8n, LangChain and LlamaIndex. AI agents (Claude, ChatGPT, Cursor) can call it directly through Apify's MCP server.

FAQ

Does it work for videos without captions? It can only return transcripts that exist on YouTube (creator-made or auto-generated). Videos with captions disabled are reported as no_transcript and are free.

Is it legal? The Actor only reads publicly available caption data. Make sure your use respects YouTube's terms and applicable copyright law.

Something broke or you need a feature? Open an issue on the Issues tab — we respond fast.