YouTube Transcript Extractor
Pricing
from $10.00 / 1,000 results
YouTube Transcript Extractor
🎬 Convert any YouTube video to text. Extract transcripts, subtitles, and captions from videos, Shorts, and live streams. Get timestamped segments or full text in JSON, SRT, or plain text. Auto-captions speech-to-text fallback. 14+ languages. No login needed.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Zero Downtime
Maintained by CommunityActor stats
0
Bookmarked
46
Total users
5
Monthly active users
a day ago
Last modified
Categories
Share
Extract transcripts from any YouTube video, Short, or live stream. Paste a URL, get back timestamped text -- ready for repurposing, analysis, or translation.
Works with any public video. No login required.
What it does
- You provide a YouTube video URL.
- The actor extracts the transcript.
- You get back structured text with timestamps -- in JSON, plain text, SRT, or VTT.
Key features
- Multi-language -- supports any language YouTube provides captions for. See supported languages for speech-to-text fallback.
- 4 output formats -- JSON with timestamps, plain text, SRT subtitles, or WebVTT.
- Video metadata -- title, duration, detected language, and which operator extracted it.
- Shorts & live streams -- works with standard videos, Shorts, and completed live streams.
- Fast on repeat lookups -- recently extracted videos return from cache in milliseconds.
- No login required.
Supported languages
When captions are available, the actor supports any language YouTube provides. When captions aren't available, the speech-to-text fallback supports:
| Code | Language |
|---|---|
en | English |
es | Spanish |
fr | French |
de | German |
pt | Portuguese |
it | Italian |
nl | Dutch |
ja | Japanese |
ko | Korean |
zh | Chinese |
ar | Arabic |
ru | Russian |
tr | Turkish |
hi | Hindi |
Input
| Field | Type | Default | Description |
|---|---|---|---|
url | string | (required) | YouTube video URL |
language | string | "en" | Preferred language (ISO 639-1) |
format | string | "json" | "json", "text", "srt", or "vtt" |
Supported URLs
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/shorts/VIDEO_IDhttps://www.youtube.com/live/VIDEO_IDhttps://m.youtube.com/watch?v=VIDEO_ID
Output example
When format is json, the dataset row looks like this:
{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","platform": "youtube","video_id": "dQw4w9WgXcQ","source": "live","metadata": {"title": "Rick Astley - Never Gonna Give You Up (Official Music Video)","duration_sec": 212,"extracted_via": "youtube_captions"},"transcript": {"language": "en","segments": [{ "start": 0.0, "end": 3.5, "text": "We're no strangers to love" },{ "start": 3.5, "end": 7.2, "text": "You know the rules and so do I" }],"full_text": "We're no strangers to love You know the rules and so do I ..."}}
When format is text, srt, or vtt, the formatted transcript is written to the actor's key-value store under the OUTPUT key.
source indicates freshness: live (fresh pipeline run), warm (recent cache hit), cold (older cache rehydrate).
When extraction fails, you get a clear error in the dataset:
{"error": "NotAvailable","message": "No transcript available for this video."}
Error codes
| Code | Meaning |
|---|---|
InvalidURL | Not a valid YouTube URL |
UnsupportedPlatform | URL host is not a supported platform |
NotAvailable | Video is private, removed, or has no extractable transcript |
RateLimited | Too many requests -- retry after a short delay |
TIMEOUT | Extraction took longer than the actor's poll budget |
INTERNAL_ERROR | Unexpected error during extraction |
Use cases
- Content repurposing -- turn YouTube videos into blog posts, articles, or social media content.
- Accessibility -- generate transcripts for hearing-impaired audiences.
- Research & analysis -- build datasets of video content for market research.
- SEO -- extract text content from videos for search engine optimization.
- Translation -- get transcripts as a starting point for multilingual subtitles.
- Education -- create study materials from lecture videos.
Integrations
Use this actor with the Apify API or connect it to your workflow:
- Python --
apify_client.actor("your-actor-id").call(run_input={"url": "..."}) - JavaScript --
await client.actor("your-actor-id").call({url: "..."}) - Zapier / Make / n8n -- trigger on new videos and get transcripts automatically.
- Webhooks -- get notified when a transcript is ready.
FAQ
Does this need a YouTube account? No. Works with any public video, no login needed.
What if a video has no subtitles? The actor will still extract a transcript using speech-to-text.
Does it work with YouTube Shorts?
Yes. Shorts URLs (youtube.com/shorts/VIDEO_ID) are fully supported.
Does it work with live streams? Yes, for completed live streams with replay available.
Which languages work? Any language YouTube provides captions for. See the supported languages table for speech-to-text fallback.
Can I process multiple videos? Yes. Call the actor via the Apify API or use integrations (Zapier, Make, n8n) to process videos in a loop.
What does it cost? The actor runs on the Apify platform. Cost depends on video length and processing needed.