Bulk Media Transcriber
Pricing
$6.00 / 1,000 media transcribeds
Bulk Media Transcriber
Transcribe batches of Instagram, TikTok, YouTube, direct media URLs, and uploaded files into text, timestamps, SRT, and VTT.
Turn Instagram reels, TikToks, YouTube videos, direct media links, and uploaded files into searchable text and subtitle files. No OpenAI key is required—the Actor uses its own GPU-hosted large-v3 Whisper service by default. You are charged $0.006 only for each successfully transcribed media item.
Input example
{"urls": ["https://www.youtube.com/watch?v=aqz-KE-bpKQ","https://www.youtube.com/watch?v=jNQXAC9IVRw"],"language": "en","includeSubtitles": true}
Output example
One dataset row is written per input. Failures remain visible as rows with status: "failed" and error.
{"index": 1,"source_url": "https://www.youtube.com/watch?v=aqz-KE-bpKQ","source_type": "youtube","status": "succeeded","title": "Big Buck Bunny 60fps 4K - Official Blender Foundation Short Film","language": "en","duration_seconds": 33.0,"word_count": 12,"text": "Complete detected speech appears here...","segments": [{"start": 2.4, "end": 5.9, "text": "Timestamped segment text."}],"processing_seconds": 8.31}
The default key-value store also contains:
transcripts/0001-....txt— plain texttranscripts/0001-....srt— SubRip subtitlestranscripts/0001-....vtt— WebVTT subtitlesRUN_SUMMARY.json— success, failure, and word totals
Supported inputs
- Public Instagram reel/post, TikTok, and YouTube URLs, acquired with
yt-dlp - Direct public HTTP(S) audio/video URLs
- Public or signed Apify key-value-store/object-store file URLs
Use urls for mixed social/direct links, mediaUrls for direct links, or uploadedFiles for uploaded-file URLs. A run can process up to 1,000 items when maxItems is raised.
Options
language: optional ISO-639-1 hint such asen,es, orhi; blank enables detection.prompt: optional names, acronyms, and vocabulary hints.includeSubtitles: create SRT and VTT files (defaulttrue).concurrency: parallel items, from 1 to 10 (default3).maxFileSizeMb: direct/uploaded download limit (default24).transcription: advanced buyer override. SupplybaseUrl,apiKey, and optionallymodelto use your own OpenAI-compatible/audio/transcriptionsAPI. Leaving it blank uses the included GPU service.
Billing and failure behavior
Billing emits the media-transcribed event at $0.006 only after media acquisition and transcription succeed. Download, unsupported/private media, and transcription failures are not charged. One failed item does not stop the rest of the batch.
Social sources must be publicly accessible to yt-dlp. Login-gated, private, geo-blocked, or DRM-protected media can fail as an item-level row.
Local development
python -m pip install -r requirements.txt -r requirements-dev.txtpytest -qpython -m compileall -q src
For a local Actor run, put input in storage/key_value_stores/default/INPUT.json, set APIFY_LOCAL_STORAGE_DIR=./storage, OPENAI_BASE_URL, and OPENAI_API_KEY, then run python -m src.