YouTube Transcript Enhanced avatar

YouTube Transcript Enhanced

Pricing

Pay per event

Go to Apify Store
YouTube Transcript Enhanced

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

Stas Persiianenko

Maintained by Community

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

ParameterTypeRequiredDefaultDescription
urlsstring[]YesYouTube video URLs or 11-character video IDs
languagestringNoenISO 639-1 language code for preferred transcript
includeAutoGeneratedbooleanNotrueAllow auto-generated captions as fallback
outputFormatstringNojsonOutput format: json, srt, vtt, or text
chunkParagraphsbooleanNofalseGroup segments into paragraphs
searchKeywordsstringNoComma-separated keywords to search in transcript
timeRangeStartintegerNoStart time in seconds for time range filter
timeRangeEndintegerNoEnd time in seconds for time range filter
includeTextAnalysisbooleanNotrueInclude 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

FormatDescriptionOutput field
jsonRaw transcript segments with start time and durationsegments array (always included)
srtSubRip subtitle format, ready to use with video playerssrt string
vttWebVTT subtitle format, compatible with HTML5 videovtt string
textPlain text with [MM:SS] timestamps per lineformattedText 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.

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

  1. Open YouTube Transcript Enhanced on Apify.
  2. Enter one or more YouTube video URLs or video IDs in the urls field.
  3. Choose your preferred outputFormat (json, srt, vtt, or text).
  4. Optionally enable chunkParagraphs, set searchKeywords, or specify a time range.
  5. Click Start and wait for the extraction to finish.
  6. 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:

EventPriceDescription
Actor start$0.035Charged once per run
Transcript enriched$0.005Charged 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 file
if (item.srt) fs.writeFileSync(`${item.videoId}.srt`, item.srt);
});

Python

from apify_client import ApifyClient
client = 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 file
if 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 chunkParagraphs for content repurposing — paragraphs are easier to read than raw segments
  • Use searchKeywords to quickly find relevant sections in long videos
  • Time range filtering is useful for extracting specific sections from lectures or interviews
  • The fullText field 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