AS
Apify Store
/codepoetry/youtube-transcript-ai-scraper
YouTube Transcript Scraper Pro (Captions + AI Fallback)
Extract YouTube transcripts at scale without burning through your budget. It starts with free captions whenever they're available, then switches to AI only for videos that don't have them. You stay in control of costs, and the output — JSON, SRT, VTT, plain text, or LLM-ready format
liveasyncunknown~30s typical
AISOCIAL_MEDIAVIDEOS
$0.0020
per result + $0.01 call
plus $0.001 platform fee per run
Usage-based actor: event charges passed through at cost plus 25%
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /codepoetry/youtube-transcript-ai-scraper for me.
Input
| Field | Type | Description |
|---|---|---|
| startUrls* | array | Paste one or more YouTube URLs — single videos, playlists, or channels. Supports watch URLs, short youtu.be links, and channel URLs. |
| maxResults | integer | Maximum number of videos to fetch from a playlist or channel. Single video URLs ignore this. Channels return newest videos first. default 10 |
| languages | array | Languages to try, in order of preference. The first match on each video is used. Note: setting Caption source to Manual Only means auto-generated captions are ignored even if they exist in your requested language. default ["en"] |
| subType | string (manual | auto | both) | Manual = human-written captions only. Auto = YouTube's machine-generated captions only. Both = tries manual first, falls back to auto. Most videos only have auto-generated captions. default "both" |
| outputFormats | array | Plain Text is the simplest — one block of words. JSON adds timestamps. LLM-Ready strips [Music] and filler tokens for AI pipelines. SRT and VTT are subtitle formats for video editors. default ["json","text","llm"] |
| wordLevel | boolean | Add per-word start and end times inside each JSON segment. default false |
| enableAiFallback | boolean | Off by default. Turn on to transcribe videos that have no native YouTube captions. Memory increases to 4 GB automatically and per-minute AI charges apply. default false |
| forceWhisperLanguage | string ( | af | am | ar | as | az) | Force the AI model to a specific language and skip the 30-second detection window at the start of each video. Saves roughly 20% of AI transcription time per video. Leave empty to auto-detect. |
| maxAiMinutes | integer | Hard cap on total AI transcription minutes for this run. When reached, remaining caption-free videos are skipped and the run continues. Set to 0 for unlimited. default 30 |
| skipAiFallbackIfLongerThan | integer | Skip AI transcription for any video longer than this many minutes. Useful when a channel mixes short clips with long recordings. Set to 0 to disable. default 0 |
Call it
curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
-H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
-d '{"provider":"apify","endpoint":"/codepoetry/youtube-transcript-ai-scraper","input":{"startUrls":[],"maxResults":10,"languages":["en"],"subType":"both","outputFormats":["json","text","llm"],"wordLevel":false,"enableAiFallback":false,"maxAiMinutes":30,"skipAiFallbackIfLongerThan":0},"wait":false}'poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."cli
npx cracked-ai run -p apify -e /codepoetry/youtube-transcript-ai-scraper -i '{"startUrls":[],"maxResults":10,"languages":["en"],"subType":"both","outputFormats":["json","text","llm"],"wordLevel":false,"enableAiFallback":false,"maxAiMinutes":30,"skipAiFallbackIfLongerThan":0}' -w 120mcp
run_tool({ provider: "apify", endpoint: "/codepoetry/youtube-transcript-ai-scraper", input: {"startUrls":[],"maxResults":10,"languages":["en"],"subType":"both","outputFormats":["json","text","llm"],"wordLevel":false,"enableAiFallback":false,"maxAiMinutes":30,"skipAiFallbackIfLongerThan":0}, wait: false })Try it
Runs against your signed-in workspace balance. Sign in if you have not.