YouTube Transcript Extractor
Pricing
from $3.25 / 1,000 transcript extracteds
YouTube Transcript Extractor
Extract YouTube transcripts in text, SRT, VTT, or JSON. Auto-generated and manual captions in any language. Video metadata: title, channel, views, duration. Innertube API with residential proxy. Batch videos.
Pricing
from $3.25 / 1,000 transcript extracteds
Rating
0.0
(0)
Developer
junipr
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Extract transcripts, captions, and subtitles from any YouTube video. Get full text, timed segments with timestamps, video metadata, channel info, and word counts. Supports multiple languages, auto-generated captions, and SRT/VTT/JSON/plain text output formats. Batch process up to 500 videos per run.
Features
- Extract transcripts from any public YouTube video with captions enabled
- Multiple output formats: plain text, SRT subtitles, WebVTT subtitles, or raw JSON segments
- Timed segments with start time and duration for each text block
- Full video metadata: title, channel name, channel URL, duration, view count, publish date
- Multi-language support with automatic fallback to available languages
- Auto-generated caption support — falls back to YouTube's auto-captions when manual captions are unavailable
- Batch processing — extract transcripts from up to 500 videos in a single run
- Word count per video for content analysis
- Accepts all YouTube URL formats: standard, short (youtu.be), embed, and shorts
- Zero-config — works out of the box with sensible defaults
- Pay-per-event pricing — only pay for transcripts successfully extracted
Proxy Requirements
This actor requires residential proxies because YouTube blocks datacenter IP addresses.
- Paid Apify plan users ($49+/month): Works automatically with the default residential proxy configuration. No setup needed.
- Free plan users: Provide your own residential proxy URL in the Proxy Configuration input field. Free Apify plans only include datacenter proxies, which YouTube will block.
- Without a residential proxy, the actor will exit with a clear error message explaining what to do.
Input
All fields are optional. The actor runs with defaults and requires no configuration.
| Field | Type | Default | Description |
|---|---|---|---|
urls | string[] | Example video | List of YouTube video URLs to extract transcripts from |
language | string | "en" | Preferred transcript language code (e.g., en, es, fr, de, ja) |
includeTimestamps | boolean | true | Include timed segments with start time and duration |
includeAutoGenerated | boolean | true | Fall back to auto-generated captions if manual captions are unavailable |
outputFormat | string | "text" | Output format: text, srt, vtt, or json |
maxVideos | integer | 50 | Maximum videos to process (1-500) |
proxyConfiguration | object | Apify residential | Proxy settings. Defaults to Apify residential proxy (requires paid plan) |
Output
Each result is one video stored in the default dataset.
| Field | Type | Description |
|---|---|---|
videoUrl | string | Canonical YouTube URL |
videoId | string | YouTube video ID |
title | string or null | Video title |
channelName | string or null | Channel name |
channelUrl | string or null | Channel URL |
duration | string or null | Video duration in ISO 8601 format (e.g., PT5M30S) |
viewCount | number or null | Total view count |
publishedAt | string or null | Publish date |
language | string or null | Language code of the extracted transcript |
isAutoGenerated | boolean or null | Whether the transcript is auto-generated by YouTube |
transcript | string or null | Full transcript text in the requested format |
segments | array or null | Timed segments with text, start, and duration (when includeTimestamps is true) |
wordCount | number or null | Total word count of the transcript |
error | string or null | Error message if extraction failed for this video |
scrapedAt | string | ISO 8601 timestamp of extraction |
Output Example
{"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","videoId": "dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up","channelName": "Rick Astley","channelUrl": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","duration": "PT3M33S","viewCount": 1500000000,"publishedAt": "2009-10-25","language": "en","isAutoGenerated": true,"transcript": "We're no strangers to love You know the rules and so do I...","segments": [{ "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 },{ "text": "You know the rules and so do I", "start": 21.5, "duration": 3.0 }],"wordCount": 287,"error": null,"scrapedAt": "2025-06-01T12:00:00.000Z"}
Use Cases
- Content repurposing — convert video content into blog posts, articles, or social media copy
- SEO and keyword research — analyze transcript text for keywords and topic coverage
- Accessibility — generate text versions of video content for hearing-impaired users
- Research and analysis — extract and analyze spoken content from educational or news videos
- Subtitle generation — export SRT or VTT files for use in video editors or players
- AI and NLP pipelines — feed transcript text into summarization, sentiment analysis, or embedding models
- Content monitoring — track what competitors or influencers are saying in their videos
Integrations
Connect this actor with other tools in your workflow:
- Apify API — trigger runs programmatically and retrieve results via REST API
- Webhooks — get notified when extraction completes
- Scheduling — set up recurring runs to monitor new video transcripts
- Apify integrations — connect to Google Sheets, Slack, Zapier, Make, and more
Pricing
This actor uses Pay-Per-Event (PPE) pricing: $3.20 per 1,000 transcripts extracted ($0.0032 per event).
Pricing includes all platform compute costs — no hidden fees.
FAQ
What YouTube URL formats are supported?
The actor accepts standard watch URLs (youtube.com/watch?v=), short URLs (youtu.be/), embed URLs (youtube.com/embed/), shorts URLs (youtube.com/shorts/), and bare video IDs.
What if a video has no captions?
The actor reports a clear error message for that video and continues processing the remaining videos. You are not charged for videos without available captions.
Why does this actor need a residential proxy?
YouTube actively blocks requests from datacenter IP addresses. Residential proxies route requests through real ISP connections, which YouTube does not block. Without a residential proxy, requests will fail with 403 errors.
Can I use this on Apify's free plan?
Yes, but you need to provide your own residential proxy URL in the Proxy Configuration input. The free Apify plan only includes datacenter proxies, which YouTube blocks. The actor will exit with a helpful error message if no residential proxy is available.