Bulk Media Transcriber avatar

Bulk Media Transcriber

Pricing

$6.00 / 1,000 media transcribeds

Go to Apify Store
Bulk Media Transcriber

Bulk Media Transcriber

Transcribe batches of Instagram, TikTok, YouTube, direct media URLs, and uploaded files into text, timestamps, SRT, and VTT.

Pricing

$6.00 / 1,000 media transcribeds

Rating

0.0

(0)

Developer

jay casey

jay casey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

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 text
  • transcripts/0001-....srt — SubRip subtitles
  • transcripts/0001-....vtt — WebVTT subtitles
  • RUN_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 as en, es, or hi; blank enables detection.
  • prompt: optional names, acronyms, and vocabulary hints.
  • includeSubtitles: create SRT and VTT files (default true).
  • concurrency: parallel items, from 1 to 10 (default 3).
  • maxFileSizeMb: direct/uploaded download limit (default 24).
  • transcription: advanced buyer override. Supply baseUrl, apiKey, and optionally model to use your own OpenAI-compatible /audio/transcriptions API. 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.txt
pytest -q
python -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.