YouTube Transcript Enhanced
Pricing
Pay per event
YouTube Transcript Enhanced
Extract YouTube transcripts with SRT/VTT subtitle export, paragraph chunking, keyword search, time range filtering, and text analytics. Works with any public video.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
4
Total users
2
Monthly active users
16 hours ago
Last modified
Categories
Share
Extract YouTube transcripts with SRT/VTT subtitle export, paragraph chunking, keyword search, time range filtering, and text analytics. Works with any public YouTube video.
What does YouTube Transcript Enhanced do?
YouTube Transcript Enhanced extracts transcripts from YouTube videos and adds powerful post-processing features. Beyond raw transcript segments, it provides ready-to-use subtitle files (SRT/VTT), intelligent paragraph grouping, keyword search across the transcript, time range filtering, and text analysis with word counts and keyword extraction.
It uses YouTube's public InnerTube API to access caption tracks — the same API YouTube's own player uses. Both manual captions and auto-generated subtitles are supported across 100+ languages.
Why use YouTube Transcript Enhanced?
- Multiple output formats — Export as SRT subtitles, VTT subtitles, timestamped plain text, or JSON segments
- Paragraph chunking — Groups small caption segments into coherent paragraphs using pause detection
- Keyword search — Find specific content in transcripts with timestamp references
- Time range filtering — Extract only the portion of the transcript you need
- Text analytics — Word count, reading time, unique words, and top keyword extraction
- Full metadata — Video title, channel, views, duration, keywords, thumbnail, publish date
- Batch processing — Process multiple videos in a single run
- Language selection — Choose preferred language with smart fallback logic
Use cases
- Content repurposing — Convert video transcripts into blog posts, articles, or social media content
- Subtitle generation — Get SRT/VTT files for videos that lack proper subtitles
- Research — Search transcripts for specific topics or keywords across multiple videos
- SEO analysis — Extract keywords and topics from video content
- Accessibility — Generate formatted transcripts for hearing-impaired users
- Education — Extract and chunk lecture transcripts into study materials
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
urls | string[] | Yes | — | YouTube video URLs or 11-character video IDs |
language | string | No | en | ISO 639-1 language code for preferred transcript |
includeAutoGenerated | boolean | No | true | Allow auto-generated captions as fallback |
outputFormat | string | No | json | Output format: json, srt, vtt, or text |
chunkParagraphs | boolean | No | false | Group segments into paragraphs |
searchKeywords | string | No | — | Comma-separated keywords to search in transcript |
timeRangeStart | integer | No | — | Start time in seconds for time range filter |
timeRangeEnd | integer | No | — | End time in seconds for time range filter |
includeTextAnalysis | boolean | No | true | Include word count, reading time, top keywords |
Output example
{"videoId": "jNQXAC9IVRw","videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw","videoTitle": "Me at the zoo","channelName": "jawed","language": "en","isAutoGenerated": true,"segmentCount": 5,"fullText": "All right so here we are...","srt": "1\n00:00:01,000 --> 00:00:04,000\nAll right so here we are...","paragraphs": [{"text": "All right so here we are in front of the elephants...","startTime": 1.0,"endTime": 12.5,"segmentCount": 3}],"paragraphCount": 2,"textAnalysis": {"wordCount": 42,"uniqueWordCount": 30,"characterCount": 210,"readingTimeMinutes": 0.2,"topKeywords": [{ "word": "elephants", "count": 2 },{ "word": "cool", "count": 2 }]},"wordCount": 42,"readingTimeMinutes": 0.2,"enrichedAt": "2026-03-01T12:00:00.000Z"}
Output formats explained
| Format | Description | Output field |
|---|---|---|
json | Raw transcript segments with start time and duration | segments array (always included) |
srt | SubRip subtitle format, ready to use with video players | srt string |
vtt | WebVTT subtitle format, compatible with HTML5 video | vtt string |
text | Plain text with [MM:SS] timestamps per line | formattedText string |
Enhancement features
Paragraph chunking
When chunkParagraphs is enabled, the actor groups small segments into paragraphs based on natural pause detection (gaps > 1.5 seconds between segments). Each paragraph includes start/end times and the merged text.
Keyword search
Set searchKeywords to a comma-separated list (e.g., "AI, machine learning, neural") to search the transcript. Returns matching segments with the keyword that triggered the match and the timestamp.
Time range filtering
Use timeRangeStart and timeRangeEnd (in seconds) to extract only a portion of the transcript. For example, timeRangeStart: 60, timeRangeEnd: 300 extracts minutes 1-5 only.
Text analysis
When includeTextAnalysis is enabled, the output includes word count, unique word count, character count, estimated reading time (~200 WPM), and the top 20 most frequent meaningful keywords (stop words excluded).
How to extract enhanced YouTube transcripts
- Open YouTube Transcript Enhanced on Apify.
- Enter one or more YouTube video URLs or video IDs in the
urlsfield. - Choose your preferred
outputFormat(json, srt, vtt, or text). - Optionally enable
chunkParagraphs, setsearchKeywords, or specify a time range. - Click Start and wait for the extraction to finish.
- Download results as JSON, CSV, or Excel from the Dataset tab.
How much does it cost to extract YouTube transcripts?
YouTube Transcript Enhanced uses pay-per-event pricing:
| Event | Price | Description |
|---|---|---|
| Actor start | $0.035 | Charged once per run |
| Transcript enriched | $0.005 | Charged per successfully enriched transcript |
Example costs:
- 1 video: $0.035 + $0.005 = $0.04
- 10 videos: $0.035 + (10 x $0.005) = $0.085
- 100 videos: $0.035 + (100 x $0.005) = $0.535
Using the Apify API
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/youtube-transcript-enhanced').call({urls: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],outputFormat: 'srt',chunkParagraphs: true,includeTextAnalysis: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.videoTitle} — ${item.wordCount} words, ${item.readingTimeMinutes} min read`);console.log(`Top keywords: ${item.textAnalysis.topKeywords.map(k => k.word).join(', ')}`);// Save SRT fileif (item.srt) fs.writeFileSync(`${item.videoId}.srt`, item.srt);});
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("automation-lab/youtube-transcript-enhanced").call(run_input={"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"outputFormat": "srt","chunkParagraphs": True,"includeTextAnalysis": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['videoTitle']} — {item['wordCount']} words")# Save SRT fileif item.get("srt"):with open(f"{item['videoId']}.srt", "w") as f:f.write(item["srt"])
Integrations
- Google Sheets — Export transcript data and analytics to spreadsheets
- Webhooks — Get notified when transcript extraction completes
- Zapier / Make — Automate workflows triggered by new transcripts
- Other Apify actors — Chain with scrapers that collect YouTube URLs
cURL:
curl -X POST "https://api.apify.com/v2/acts/automation-lab~youtube-transcript-enhanced/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"urls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"outputFormat":"srt","chunkParagraphs":true,"includeTextAnalysis":true}'
Use with AI agents via MCP
YouTube Transcript Enhanced is available as a tool for AI assistants via the Model Context Protocol (MCP).
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Example prompts
- "Get an enriched transcript with timestamps for this video"
- "Extract and summarize this YouTube video's content"
- "Download SRT subtitles for this lecture and find all mentions of 'neural network'"
Learn more in the Apify MCP documentation.
FAQ
What's the difference between this and the basic YouTube Transcript Scraper? YouTube Transcript Enhanced adds SRT/VTT subtitle export, paragraph chunking, keyword search, time range filtering, and text analytics (word count, reading time, top keywords). Use the basic scraper if you just need raw transcript segments; use Enhanced if you need formatted output or post-processing features.
Keyword search returns no results even though the word is in the video. Why? The keyword search matches against the transcript text, not audio. If the video's captions are auto-generated, words may be misspelled or split differently. Try searching for partial keywords or common variations. Also check that the transcript language matches — if captions are in Spanish but you're searching for English words, there won't be matches.
Tips and best practices
- Use
outputFormat: "srt"or"vtt"when you need subtitle files for video editing - Enable
chunkParagraphsfor content repurposing — paragraphs are easier to read than raw segments - Use
searchKeywordsto quickly find relevant sections in long videos - Time range filtering is useful for extracting specific sections from lectures or interviews
- The
fullTextfield is always included and ready for further text processing - For batch processing, all videos share the same settings — use separate runs for different configurations
Compliance
This actor uses YouTube's public InnerTube API to access caption tracks — the same API used by YouTube's own video player. It accesses only publicly available video metadata and captions. No login credentials or private data are used.
Other YouTube and video scrapers on Apify
- YouTube Transcript Scraper -- extract transcripts and subtitles from YouTube videos
- YouTube Scraper -- scrape YouTube videos, channels, and comments at scale
- YouTube Shorts Scraper -- extract Shorts data from YouTube channels
- TikTok Scraper -- scrape TikTok videos, profiles, and hashtags
- Instagram Scraper -- extract Instagram posts, profiles, and hashtags