YouTube Subtitles Extractor
Pricing
from $6.00 / 1,000 verified video transcript intelligences
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
Maintained by CommunityActor stats
1
Bookmarked
52
Total users
2
Monthly active users
24 days ago
Last modified
Categories
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-reportonly 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.markdownfield 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
- Open the actor's page and click Try for free (or Run).
- Paste one or more YouTube video URLs into
urls(watch links, youtu.be, /embed/, /shorts/, /live/ and music.youtube.com all work). - Optionally set preferred
languages(ISO 639-1, e.g.en,es,de), the number of videos (maxResults, up to 1000) andconcurrency(1–10). - 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"}
| Field | Type | Notes |
|---|---|---|
urls | array (required) | YouTube video URLs to extract transcripts from |
languages | array | Preferred transcript languages; falls back to the video's available language |
formatTranscript | boolean | Add SRT / VTT / TXT / Markdown / timestamped TXT to each record (default true) |
includeMetadata | boolean | Add title, channel, thumbnail via oEmbed (default true) |
maxResults | integer | How many videos from urls to process (1–1000, default 1) |
concurrency | integer | Parallel extractions (1–10, default 1) |
proxyType | enum | RESIDENTIAL (default, recommended) or DATACENTER |
debugMode | boolean | Force 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
| Field | Meaning |
|---|---|
url, videoId | Source video |
success | True when a transcript was delivered |
language | Language code of the delivered transcript |
isAutoGenerated | True when YouTube auto-generated the captions |
segments | Timestamped text segments (text, start, duration, end) |
fullText | Whole transcript as one string |
metadata | Title, channel, thumbnail (oEmbed) |
formats | json / srt / vtt / txt / txtWithTimestamps / markdown |
error | Present 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-reportevent 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
urlswithmaxResults10–50 andconcurrency5 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
languagesexist for a video, the video's best available transcript language is delivered and reported inlanguage/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.