Unlimited YouTube Subtitle & Transcript Scraper Pro
Pricing
$20.00/month + usage
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
Maintained by CommunityActor stats
2
Bookmarked
74
Total users
2
Monthly active users
10 days ago
Last modified
Categories
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)timestampedsrtvttjsoncsvall
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:
1to10 - Controls how many videos are processed in parallel.
maxRetries (optional)
- Type: integer
- Default:
2 - Range:
0to5 - Retries transient transcript request failures.
proxyConfiguration (optional)
- Type: object
- Default: Apify Proxy with the
RESIDENTIALgroup - 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(transcriptorerror)success(boolean)originalInput(string)videoId(string)videoUrl(string)languageCode(string ornull)languageName(string ornull)isGenerated(boolean ornull)isTranslatable(boolean ornull)outputFormat(string)transcript(string, array, object, ornulldepending ontype)segments(array ornull)segmentCount(integer)availableLanguages(array)errorMessage(string ornull)scrapedAt(UTC timestamp)
If a video fails, the item is still returned with:
success: falsetranscript: ""errorMessageexplaining 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 (
srtorvtt) for editing or publishing - Prepare clean text for AI/LLM pipelines (
plainorjson) - 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
languageempty 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
maxConcurrencygradually.