Unlimited YouTube Subtitle & Transcript Scraper Pro avatar

Unlimited YouTube Subtitle & Transcript Scraper Pro

Pricing

$20.00/month + usage

Go to Apify Store
Unlimited YouTube Subtitle & Transcript Scraper Pro

Unlimited YouTube Subtitle & Transcript Scraper Pro

๐—ฌ๐—ผ๐˜‚๐—ง๐˜‚๐—ฏ๐—ฒ ๐—ฆ๐˜‚๐—ฏ๐˜๐—ถ๐˜๐—น๐—ฒ & ๐—ง๐—ฟ๐—ฎ๐—ป๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฝ๐˜ ๐——๐—ผ๐˜„๐—ป๐—น๐—ผ๐—ฎ๐—ฑ๐—ฒ๐—ฟ - Extract subtitles and transcripts in ๐—บ๐˜‚๐—น๐˜๐—ถ๐—ฝ๐—น๐—ฒ ๐—น๐—ฎ๐—ป๐—ด๐˜‚๐—ฎ๐—ด๐—ฒ๐˜€ from any YouTube video. Supports ๐—ฏ๐˜‚๐—น๐—ธ ๐—ฑ๐—ผ๐˜„๐—ป๐—น๐—ผ๐—ฎ๐—ฑ๐˜€, auto-generated captions & custom language selection.

Pricing

$20.00/month + usage

Rating

0.0

(0)

Developer

Xtech

Xtech

Maintained by Community

Actor stats

2

Bookmarked

74

Total users

2

Monthly active users

10 days ago

Last modified

Share

YouTube Transcript Scraper Pro

Extract clean transcripts from one or many YouTube videos in a single run.

This Actor accepts YouTube video URLs or video IDs and returns transcripts in the format you need: plain text, timestamped text, SRT, VTT, JSON, CSV, or all formats at once. It prefers manually created captions when they are available and otherwise uses an auto-generated transcript.

What you get

  • Bulk processing for multiple videos
  • Support for standard YouTube URLs, short URLs, Shorts URLs, embed URLs, live URLs, and raw video IDs
  • Automatically returns the best available transcript, preferring manually created captions when available
  • Optional language setting for users who need a specific transcript language
  • Structured dataset output for downstream automations
  • Output format control for different workflows (LLM prep, subtitle editing, QA, analytics)
  • Apify Proxy support for cloud runs where YouTube blocks datacenter IPs

Input

videos (required)

List of YouTube videos.

Supported values:

  • Video ID: dQw4w9WgXcQ
  • Watch URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • Short URL: https://youtu.be/dQw4w9WgXcQ
  • Shorts URL: https://www.youtube.com/shorts/dQw4w9WgXcQ
  • Embed URL: https://www.youtube.com/embed/dQw4w9WgXcQ
  • Live URL: https://www.youtube.com/live/dQw4w9WgXcQ

type (optional)

Output format for transcript.

Allowed values:

  • plain (default)
  • timestamped
  • srt
  • vtt
  • json
  • csv
  • all

language (optional)

Leave empty to return the best available transcript in any language. If you enter a language code such as en, es, or de, the Actor will try to return that language and otherwise report which languages are available.

keepMusicMarkers (optional)

  • Type: boolean
  • Default: false
  • When false, markers like [Music] are removed.

dropEmpty (optional)

  • Type: boolean
  • Default: true
  • Removes empty transcript segments after cleanup.

maxConcurrency (optional)

  • Type: integer
  • Default: 3
  • Range: 1 to 10
  • Controls how many videos are processed in parallel.

maxRetries (optional)

  • Type: integer
  • Default: 2
  • Range: 0 to 5
  • Retries transient transcript request failures.

proxyConfiguration (optional)

  • Type: object
  • Default: Apify Proxy with the RESIDENTIAL group
  • YouTube often blocks cloud datacenter IPs, so proxy use is recommended for Apify platform runs. You can disable it for local/direct runs if transcript requests work without a proxy.

Output

Each dataset item contains:

  • recordType (transcript or error)
  • success (boolean)
  • originalInput (string)
  • videoId (string)
  • videoUrl (string)
  • languageCode (string or null)
  • languageName (string or null)
  • isGenerated (boolean or null)
  • isTranslatable (boolean or null)
  • outputFormat (string)
  • transcript (string, array, object, or null depending on type)
  • segments (array or null)
  • segmentCount (integer)
  • availableLanguages (array)
  • errorMessage (string or null)
  • scrapedAt (UTC timestamp)

If a video fails, the item is still returned with:

  • success: false
  • transcript: ""
  • errorMessage explaining the failure

Example input

{
"videos": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://youtu.be/jNQXAC9IVRw",
"M7FIvfx5J10"
],
"type": "all",
"language": "",
"keepMusicMarkers": false,
"dropEmpty": true,
"maxConcurrency": 4,
"maxRetries": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example output item

{
"recordType": "transcript",
"success": true,
"originalInput": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"languageCode": "en",
"languageName": "English",
"isGenerated": false,
"isTranslatable": true,
"outputFormat": "all",
"transcript": {
"plain": "Never gonna give you up...",
"timestamped": "00:00:01.200 Never gonna give you up...",
"srt": "1\\n00:00:01,200 --> 00:00:03,800\\nNever gonna give you up...",
"vtt": "WEBVTT\\n\\n00:00:01.200 --> 00:00:03.800\\nNever gonna give you up...",
"json": [
{
"text": "Never gonna give you up...",
"start": 1.2,
"duration": 2.6
}
],
"csv": "start,duration,text\\n1.2,2.6,\"Never gonna give you up...\""
},
"segmentCount": 42,
"errorMessage": null,
"scrapedAt": "2026-05-22T12:34:56Z"
}

Typical use cases

  • Build subtitle files (srt or vtt) for editing or publishing
  • Prepare clean text for AI/LLM pipelines (plain or json)
  • Create timestamped transcripts for compliance or QA reviews
  • Batch-export transcripts for research and analytics

Notes

  • The Actor deduplicates repeated video IDs in one run.
  • Transcript availability depends on whether subtitles exist for a given video.
  • Leave language empty for the simplest and most reliable result. The Actor will choose a manually created transcript when available, otherwise an auto-generated transcript.
  • For best throughput on larger batches, increase maxConcurrency gradually.