Audio/Video to SRT & VTT Subtitle Files avatar

Audio/Video to SRT & VTT Subtitle Files

Pricing

from $2.00 / 1,000 captions transcribeds

Go to Apify Store
Audio/Video to SRT & VTT Subtitle Files

Audio/Video to SRT & VTT Subtitle Files

Public Mandarin/English video or podcast → downloadable .srt + .vtt (and JSON). Bilibili, TED, Vimeo, direct MP3. YouTube/Douyin NOT supported (fail-fast ≤2min, no charge). Captions-first, local faster-whisper. Same PPE as video-to-transcript.

Pricing

from $2.00 / 1,000 captions transcribeds

Rating

0.0

(0)

Developer

TG960 T

TG960 T

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

Turn public Chinese (Mandarin) and English videos or podcast audio into downloadable .srt and .vtt subtitle files, plus timestamped JSON segments and plain text. Same hybrid pipeline as 960w/video-to-transcript: extract existing captions first, then fall back to built-in CPU faster-whisper (no external API key).

Sibling actor: Need a transcript-first Dataset for LLM / search indexing? Use 960w/video-to-transcript. This Actor is optimized for subtitle file delivery (SRT + WebVTT in the Key-Value Store).


1. What You Get

For each succeeded URL:

  • .srt (SubRip) — Dataset field srt + KV key SRT_###_*.srt
  • .vtt (WebVTT) — Dataset field vtt + KV key VTT_###_*.vtt
  • Timestamped segments and plain text
  • source: "captions" or "whisper"

Choose formats with input subtitleFormats: ["srt","vtt"] (default), or only one of them.


2. Supported vs Unsupported

Supported (cloud-verified)

PlatformExamplePath
Bilibili public BVhttps://www.bilibili.com/video/BV...captions (rare) or whisper
Direct audio / podcasthttps://.../*.mp3 / .m4a / .wavwhisper
TED Talkshttps://www.ted.com/talks/...captions (fast)
Public Vimeohttps://vimeo.com/<id>captions or whisper

NOT supported (fail-fast ≤ 2 minutes, no PPE charge)

Link typeBehavior
YouTubeImmediate status=failed with clear reason (no TIMED-OUT hang)
Douyin / TikTokImmediate status=failed
Private / VIP / login / DRMfailed or skipped with reason

3. Input Example

{
"videoUrls": [
"https://www.ted.com/talks/matt_cutts_try_something_new_for_30_days",
"https://archive.org/download/call_to_arms_jl_librivox/calltoarms_06_lu.mp3"
],
"subtitleFormats": ["srt", "vtt"],
"languageHint": "auto",
"useWhisperFallback": true,
"whisperModel": "small",
"maxDurationMinutes": 60,
"maxVideos": 20
}

4. Output Example (TED captions → SRT + VTT)

Dataset record (excerpt):

{
"url": "https://www.ted.com/talks/matt_cutts_try_something_new_for_30_days",
"title": "Try something new for 30 days",
"durationSec": 190,
"source": "captions",
"language": "en",
"srtKey": "SRT_001_1183.srt",
"vttKey": "VTT_001_1183.vtt",
"status": "succeeded",
"error": null
}

KV Store also contains the raw .srt and .vtt files ready to download.


5. Pricing (Pay-Per-Event — same structure as video-to-transcript)

EventWhen chargedPrice
captions-transcribedSucceeded item from existing captions$0.002 / video
whisper-transcribed-minuteSucceeded Whisper path, per started minute$0.025 / minute

Failed / skipped / unsupported URLs: $0 PPE (charged only when status == "succeeded").


6. FAQ

Do I need an OpenAI API key?

No. Whisper runs inside the Actor (faster-whisper, CPU int8).

Why is YouTube not supported?

Datacenter IPs are blocked by YouTube bot checks. This Actor never uses cookies or paid residential proxies. YouTube URLs fail fast with a clear error and are not charged.

SRT vs VTT — which should I pick?

Use SRT for most video editors and players. Use VTT for HTML5 <track> / web players. Default writes both.

How is this different from video-to-transcript?

Same engine and pricing events. This Actor emphasizes subtitle files (SRT + VTT keys, subtitleFormats input). The sibling focuses on transcript Dataset fields for NLP pipelines.

SLA

Unsupported links: clear failure within 2 minutes. Processable items up to 60 minutes of audio aim to finish within ~10 minutes wall clock (auto model downshift + ffmpeg truncate for long files).