Subtitle Translator — SRT & VTT into Any Language avatar

Subtitle Translator — SRT & VTT into Any Language

Pricing

from $50.00 / 1,000 subtitle languages

Go to Apify Store
Subtitle Translator — SRT & VTT into Any Language

Subtitle Translator — SRT & VTT into Any Language

Localize a video into ten languages before lunch. Paste an SRT or VTT (or a video URL to transcribe first), pick your target languages, and get back clean translated SRT and VTT per language with every original cue timing preserved exactly. $0.05 per language, flat rate.

Pricing

from $50.00 / 1,000 subtitle languages

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Subtitle Translator (SRT & VTT)

Translate a subtitle file into several languages in one run. Paste in an SRT or VTT, or hand it a video URL to transcribe first, choose your target languages, and get back clean translated SRT and VTT with the original timings untouched. Built for localization and accessibility work where you need the same captions in five languages without re-doing the timing by hand.

$0.05 per language, plus $0.00005 each time a run starts. Flat rate — no volume tiers, no plan gates. The charge is per dataset row, and the actor writes exactly one row per target language, including in the labelled sample mode you get without a key.

How it works

It parses your input into cues, sends the text (not the timestamps) to an AI model for translation, and re-emits each cue with its original start/end times. If you pass a videoUrl instead of subtitle text, it transcribes the audio first and then translates the result.

Input

FieldRequiredNotes
targetLanguagesyesList of ISO 639-1 codes, e.g. ["es", "fr", "de"]. One result — and one charge — per language.
subtitlesone of theseRaw SRT or VTT text to translate.
videoUrlone of thesePublic video or audio URL to transcribe first, then translate. Use this when you don't already have a subtitle file.
sourceLanguagenoISO code of the input, or auto to detect. Default auto.
outputFormatnosrt, vtt, or both. Defaults to both.
openaiApiKeynoYour own OpenAI key for the translation and transcription steps. Marked secret in the schema.
translationModelnoChat model used for translation. Default gpt-4o-mini.
baseUrlnoAny OpenAI-compatible base URL, if you route through a proxy or a compatible provider.

Provide either subtitles or videoUrl, not both. targetLanguages is the only field you always have to set.

Output

One dataset row per target language, plus the files themselves in the run's key-value store.

FieldWhat it is
languageThe ISO code this row was translated into.
sourceLanguageThe language actually detected, or the one you forced.
srtKey, srtUrlKey-value-store key and direct URL for the translated .srt (when outputFormat includes SRT).
vttKey, vttUrlThe same for the translated .vtt.
txtKey, txtUrlA plain-text transcript of the translation, written on every run regardless of outputFormat — handy for repurposing, SEO copy or feeding another tool.
textThe full translated text inline in the row, so you can use it without a second fetch.
previewThe first two translated cues, for a quick sanity check in the dataset preview.

Original cue timings are preserved exactly — only the text is sent to the model, never the timestamps — so the output drops straight back into your player or editor.

Example

{
"subtitles": "1\n00:00:01,000 --> 00:00:04,000\nHello, welcome to the show.\n",
"targetLanguages": ["es", "fr", "de"],
"outputFormat": "both"
}

Pricing

EventWhenPrice
Actor startOnce per run, per GB of run memory$0.00005
Subtitle languageEach row written to the dataset — one per target language$0.05

Cost scales with languages, not with file length: translating one subtitle file into five languages costs $0.25 whether the file is two minutes or two hours.

Because the charge is per dataset row, the same is true of the demo. A run with no openaiApiKey, or with neither subtitles nor videoUrl, returns labelled _sample rows — one per language in targetLanguages — and each of those is charged $0.05 like a real one. Asking for five languages without a key therefore costs $0.25, not nothing. Trim targetLanguages to a single code while you are wiring things up.

Your OpenAI usage is billed separately by OpenAI on your own key, and covers the translation model plus Whisper if you passed a videoUrl.

Notes

Translation quality tracks the underlying model, so long idioms and very domain-specific terms may need a human pass. Transcribing from a videoUrl adds time and depends on the audio being clear; if you already have accurate captions, pasting the subtitle text directly is faster and more reliable.