YouTube Transcript Extractor Subtitles, Captions,SRT, VTT, JSON avatar

YouTube Transcript Extractor Subtitles, Captions,SRT, VTT, JSON

Pricing

from $10.00 / 1,000 results

Go to Apify Store
YouTube Transcript Extractor Subtitles, Captions,SRT, VTT, JSON

YouTube Transcript Extractor Subtitles, Captions,SRT, VTT, JSON

Extract YouTube video transcripts, subtitles, and captions in multiple formats with precise timestamps. Plain Text · JSON · SRT · WebVTT · 20+ Languages · Batch Processing · Auto + Manual Captions

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Mubeen Ali

Mubeen Ali

Maintained by Community

Actor stats

2

Bookmarked

43

Total users

11

Monthly active users

a day ago

Last modified

Share

YouTube Transcript Extractor — Subtitles, Captions, SRT, VTT, JSON

Scrap YouTube video transcripts, subtitles, and captions in multiple formats with precise timestamps. Perfect for content creators, researchers, developers, and accessibility professionals who need reliable transcript data from YouTube videos.

📋 Overview

Extract YouTube video transcripts, subtitles, and captions in multiple formats with precise timestamps. Plain Text · JSON · SRT · WebVTT · 20+ Languages · Batch Processing · Auto + Manual Captions.

📋 What Is This Actor?

YouTube Transcript Extractor is an Apify Actor that scrapes YouTube video transcripts, subtitles, and captions directly — no YouTube API key required. It supports every major output format (Plain Text, JSON, SRT, WebVTT), 20+ languages, and batch processing of multiple videos in a single run.

Whether you need transcripts for AI training data, content repurposing, accessibility compliance, SEO optimization, research, or video editing — this is the fastest and most flexible YouTube caption scraper on Apify.

✨ Key Features

FeatureDetails
Output FormatsPlain Text, JSON, SRT (SubRip), WebVTT
Language Support20+ languages: English, Hindi, Spanish, Chinese, French, German, Arabic, Portuguese, and more
Timestamp PrecisionStart time, end time, and duration per segment
Batch ProcessingProcess multiple YouTube videos in a single run
Caption PriorityFetches manually created transcripts first; falls back to auto-generated captions
Flexible InputAccepts YouTube video URLs (all formats) or raw video IDs
Clean OutputStrips HTML tags and formatting artifacts automatically
Segment IndexingEvery segment is numbered for easy navigation and reference

🎯 Who Is This For?

  • Content Creators — Repurpose video scripts into blog posts, newsletters, or social media threads
  • AI & ML Engineers — Build training datasets from YouTube video transcripts at scale
  • Researchers & Academics — Analyze video content, run NLP, sentiment analysis, or topic modeling
  • SEO Professionals — Extract transcripts to add keyword-rich text to video landing pages
  • Accessibility Professionals — Generate captions and subtitles compliant with WCAG/ADA standards
  • Journalists & Fact-Checkers — Quickly search and quote spoken content from YouTube videos
  • Developers — Integrate YouTube transcript data into apps, bots, and pipelines via the Apify API

📥 Input Configuration

Configure the actor using the following input parameters:

Required Parameters

ParameterTypeDescription
videoUrlsArrayRequired. List of YouTube video URLs or video IDs to process

Optional Parameters

ParameterTypeDefaultDescription
languagesArray["en"]Preferred language codes for transcripts (e.g., ["en", "hi", "es"])
outputFormatString"text"Output format: "text", "json", "webvtt", or "srt"
preserveFormattingBooleanfalsePreserve HTML formatting tags in transcript (only for WebVTT/JSON formats)

Supported URL Formats

The actor accepts YouTube videos in multiple URL formats:

  • Standard: https://www.youtube.com/watch?v=VIDEO_ID
  • Short: https://youtu.be/VIDEO_ID
  • Direct ID: VIDEO_ID (11-character alphanumeric code)

🌐 Supported Languages

English · Hindi · Spanish · Chinese (Simplified) · French · German · Arabic · Portuguese · Russian · Japanese · Korean · Italian · Dutch · Turkish · Polish · Swedish · Danish · Norwegian · Finnish · Indonesian · and more.

Pass a standard BCP-47 language code (e.g., en, hi, es, zh, fr, de, ar) in the language input field.

🚀 How to Use

Option 1: Run on Apify Console (No Code)

  1. Go to YouTube Transcript Extractor on Apify
  2. Click Try for free
  3. Paste your YouTube URLs into the input
  4. Select your language and output format
  5. Click Start and download your transcript

Option 2: Run via Apify API

curl -X POST \
"https://api.apify.com/v2/acts/scraperhive~youtube-transcript-extractor/runs" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"language": "en",
"outputFormat": "json"
}'

Option 3: Run via Apify Python Client

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"language": "en",
"outputFormat": "json",
}
run = client.actor("scraperhive/youtube-transcript-extractor").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Option 4: Run via Apify JavaScript Client

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('scraperhive/youtube-transcript-extractor').call({
videoUrls: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],
language: 'en',
outputFormat: 'srt',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

💡 Use Case Examples

1. Generate AI Training Data from YouTube

Extract thousands of transcripts at scale for LLM fine-tuning, speech recognition training, or semantic search indexing.

{
"videoUrls": ["VIDEO_URL_1", "VIDEO_URL_2", "VIDEO_URL_3"],
"language": "en",
"outputFormat": "json"
}

2. Create SRT Subtitle Files for Video Editing

Download SRT caption files compatible with Premiere Pro, DaVinci Resolve, Final Cut, and any subtitle editor.

{
"videoUrls": ["https://www.youtube.com/watch?v=VIDEO_ID"],
"language": "es",
"outputFormat": "srt"
}

3. Extract Transcripts in Hindi or Other Languages

Get transcripts directly in your target language without translation overhead.

{
"videoUrls": ["https://www.youtube.com/watch?v=VIDEO_ID"],
"language": "hi",
"outputFormat": "text"
}

4. Batch Process a List of Videos

Provide an array of URLs to extract transcripts from multiple videos in one run.

{
"videoUrls": [
"https://www.youtube.com/watch?v=ID_1",
"https://www.youtube.com/watch?v=ID_2",
"https://www.youtube.com/watch?v=ID_3"
],
"outputFormat": "vtt"
}

⚖️ YouTube Transcript Extractor vs Competitors

FeatureThis ActorBasic Scrapers
Output: Plain Text
Output: JSON with timestamps⚠️ Partial
Output: SRT
Output: WebVTT
Segment-level timestamps✅ (start + end + duration)⚠️ Start only
20+ language support⚠️ English only
Batch multi-video processing⚠️ Limited
Manual caption priority
Clean HTML-stripped output⚠️ Raw HTML artifacts
Segment index numbering

📤 Output Structure

Each successfully processed video generates a structured result containing transcript data, metadata, and segments.

Output Fields

FieldTypeDescription
formatStringThe output format used ("text", "json", "webvtt", "srt")
metadataObjectVideo and transcript metadata
metadata.videoIdStringYouTube video ID
metadata.videoUrlStringFull YouTube video URL
metadata.languageStringLanguage code of the transcript
metadata.isAutoGeneratedBooleanWhether the transcript is auto-generated or manual
transcriptString/ArrayFormatted transcript (format depends on outputFormat)
segmentsArrayArray of transcript segments with timestamps
successBooleanAlways true for successful extractions

Segment Structure

Each segment in the segments array contains:

FieldTypeDescription
indexNumberSequential segment number (starting from 1)
textStringTranscript text for this segment
startNumberStart time in seconds
endNumberEnd time in seconds
durationNumberDuration of the segment in seconds

💰 Pricing

Pay-per-Result Model: $10.00 per 1,000 successful results

  • ✅ You are charged only for successful transcript extractions
  • ❌ Failed videos (no captions, private, unavailable, rate-limited) are not charged
  • 📊 Each successfully processed video which have transcripts counts as one result

❓ Frequently Asked Questions (FAQ)

Q: Which YouTube video formats are supported? A: Standard YouTube URLs, short youtu.be URLs, and direct 11-character video IDs are supported.

Q: Can I extract transcripts from private, unlisted, or age-restricted videos? A: No. Only publicly available videos with enabled captions can be processed.

Q: What happens if a video has no captions available? A: The extraction fails gracefully and you are not charged for that video.

Q: What is the difference between manual and auto-generated transcripts? A: Manual transcripts are uploaded by the creator and are usually more accurate. Auto-generated transcripts are created by YouTube and may contain errors. The actor prioritizes manual transcripts.

Q: Which output format should I use? A: Text for reading and SEO, JSON for APIs and AI workflows, SRT for video editing, and WebVTT for web video players.

Q: Does this actor download or store YouTube videos? A: No. It only extracts publicly available transcript and caption data.

Note: This actor complies with YouTube's Terms of Service. Users are responsible for ensuring their usage respects copyright laws and content ownership rights.