Subtitle Translator — SRT & VTT into Any Language
Pricing
from $50.00 / 1,000 subtitle languages
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
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
| Field | Required | Notes |
|---|---|---|
targetLanguages | yes | List of ISO 639-1 codes, e.g. ["es", "fr", "de"]. One result — and one charge — per language. |
subtitles | one of these | Raw SRT or VTT text to translate. |
videoUrl | one of these | Public video or audio URL to transcribe first, then translate. Use this when you don't already have a subtitle file. |
sourceLanguage | no | ISO code of the input, or auto to detect. Default auto. |
outputFormat | no | srt, vtt, or both. Defaults to both. |
openaiApiKey | no | Your own OpenAI key for the translation and transcription steps. Marked secret in the schema. |
translationModel | no | Chat model used for translation. Default gpt-4o-mini. |
baseUrl | no | Any 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.
| Field | What it is |
|---|---|
language | The ISO code this row was translated into. |
sourceLanguage | The language actually detected, or the one you forced. |
srtKey, srtUrl | Key-value-store key and direct URL for the translated .srt (when outputFormat includes SRT). |
vttKey, vttUrl | The same for the translated .vtt. |
txtKey, txtUrl | A plain-text transcript of the translation, written on every run regardless of outputFormat — handy for repurposing, SEO copy or feeding another tool. |
text | The full translated text inline in the row, so you can use it without a second fetch. |
preview | The 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
| Event | When | Price |
|---|---|---|
| Actor start | Once per run, per GB of run memory | $0.00005 |
| Subtitle language | Each 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.