01how it works

From a video file to a cue file

No black box. Every stage below says what it does, which service runs it, roughly how long it takes and where it falls over. If you are weighing us against building this yourself, this is the honest version of that comparison.

02where the time goes

A two-hour feature, three languages

Roughly fifteen minutes end to end. Transcription dominates and everything else is cheap by comparison.

Indicative timings for a 120-minute film into three languages. Upload overlaps with nothing else; the rest runs in sequence.

03stage by stage

Seven stages, and why each one exists

Click through them. Every one is here because skipping it produces a subtitle track a native speaker will reject.

Ingest without transcoding

Your browser slices the file into 5 MB pieces and posts them one at a time, so a multi-gigabyte master uploads reliably and a dropped connection resumes instead of starting over. While that happens, the browser also reads the runtime straight out of the container — which is how the exact cost appears before you have committed to anything.

Nothing is re-encoded. The picture is never touched, because nothing we do modifies it. The file sits in temporary storage under a random name and is deleted the moment the transcript comes back.

Chunked upload · 5 MB pieces · runtime read client-side · media deleted within minutes

04the engine

Four parts, one job

Recognition and translation are the parts everyone talks about. Conformance is the part that decides whether the output is publishable or merely plausible, and it is the part we built.

Part 01

Recognition

Reads the audio track out of your video without touching the picture. Returns a timestamp for every individual word and separates the voices, so cues can be built from real timing rather than guessed from paragraph blocks. It runs once per job however many languages you order.

90+ source languages · word-level timing · up to 32 voices separated

Part 02

Segmentation

Turns a flat list of timed words into dialogue. Segments break on sentence-final punctuation, on a change of speaker, on a pause longer than nine tenths of a second, and once a line grows past what one cue can carry. Getting these boundaries right is what stops a translated line from straddling two people talking.

Sentence end · speaker change · pause > 0.9 s · 140 characters

Part 03

Translation

Forty segments go across at a time with their speaker labels attached, plus the tail of the previous block so pronouns and formality carry over the seam. Line boundaries survive intact, which keeps timing aligned while the translation still gets the context it needs to resolve gender and register.

Scene-sized blocks · speaker context · 4-line overlap · ids preserved

Part 04

Conformance

Cue cutting, reading-speed enforcement, line breaking at clause boundaries, bidirectional isolation for right-to-left scripts, confidence scoring and format writing. This is the part with no shortcut available, and the reason the same transcript produces a usable track here and an unusable one elsewhere.

17 cps · 1–7 s · 2 × 42 chars · 80 ms gap · flagged when it still will not fit

Why the transcript and the translation are separate

Recognition is the expensive step and it only needs to happen once. Ordering five languages runs one recognition pass and five translation passes, not five of each. That is also why the timing is byte for byte identical across every language you order — which matters the moment a viewer switches tracks mid-scene and expects the subtitles to stay where they were.

/job/9f3c21 — The Long Road Home
LanguageCuesFlaggedFiles
Hebrew he · RTL 1,284 37 vtt srt
Arabic ar · RTL 1,284 41 vtt srt
Spanish es 1,284 22 vtt srt

Flagged cues exceeded the reading-speed limit and are worth a look before publishing. Everything else conformed cleanly.

What lands in your dashboard when a job finishes: cue counts, flag counts and every format, per language.

05the cue rules

The numbers a subtitle has to obey

These are not preferences. They come out of decades of broadcast practice and eye tracking, and breaking them is what makes machine subtitles feel wrong even when every word is correct.

CHARACTERS / SEC

17

Above this a viewer cannot finish the line before it goes. Broadcast work often tightens to 15.

LINE LENGTH

42

Characters per line, two lines maximum. Never three — the eye leaves the picture entirely.

DURATION

1–7s

Under a second reads as a flash. Over seven and the viewer thinks the track has frozen.

GAP

80ms

Clear air between cues, so the eye registers that the text changed rather than seeing a smear.

What happens when text does not fit

First we try extending the cue into whatever silence follows it. If there is none, the text is split across two cues and the time divided proportionally. If it still exceeds the limit after that — which happens with dense, fast dialogue — the cue is flagged rather than silently shipped.

Typical flag rates: three to six percent on interviews and lectures, ten to fifteen percent on feature films with a score under the dialogue. You see the number per language before you download anything.

06accuracy

It depends on the audio, not the language

This is the chart most vendors will not show you. Recognition quality tracks the mix, not the market.

97% Lecture single voice 95% Interview two voices 89% Drama score present 82% Action effects heavy 71% Crowd overlapping

Indicative word accuracy by content type, on clean source audio. These are the shapes we see, not a guarantee for your material — which is why every cue carries its own confidence score and a few dollars buys you the real number for your own catalogue.

07the wallet

Hold, then settle

Exact runtime is not known until the file is processed, but nobody should process before being paid. So the wallet holds an estimate and reconciles it afterwards.

  1. Your browser reads the runtime

    Straight from the file's own metadata, before a single byte uploads. The cost appears live as you pick languages.

  2. The estimate is held

    Debited from the wallet with a ledger row marked hold. Nothing is spent yet in the sense that matters — it is reserved.

  3. The transcript fixes the real duration

    We take whichever is larger: what your browser reported, or where speech actually ends. Never silently under-bill, never invent length either.

  4. Settlement

    Shorter than estimated, you get the difference back. Longer, the balance is charged. Either way it shows in the ledger with the balance after it.

  5. Failures cost nothing

    A failed or cancelled job releases the whole hold automatically. There is no dispute process because there is nothing to dispute.

08reliability

Everything here is resumable

Long jobs on ordinary infrastructure fail in predictable ways. Each of these was a design decision, not an afterthought.

Uploads resume

Chunks are appended at a known offset. A dropped connection picks up from the last confirmed piece rather than restarting a 2 GB transfer.

Processing resumes

Translation happens one block at a time and the position is saved after each. A job interrupted at block 180 of 270 continues at 181.

Locks expire

A job being worked on carries a timestamp lock. If a worker dies mid-run, the job frees itself after five minutes instead of sticking forever.

One language failing is contained

If a translation pass fails for Tamil, the other five still deliver. You are billed only for the ones that produced files.

Missing lines fall back

If the translation model skips an id, that cue falls back to the source text rather than leaving a silent hole in the middle of a scene.

The ledger reconciles

Every wallet movement stores the balance after it. You can audit the whole account by reading down one column.

09your media

What happens to the file

Deleted quickly
The media file is removed as soon as the transcript comes back — normally minutes after upload, not days. Only the text survives.
Not training data
We do not train models on your content. The audio exists only as long as it takes to produce a transcript, then it is gone.
Your files, your account
Subtitle files stay available so you can re-download or re-export without paying again. Delete them whenever you want.
Rights are yours to hold
We do not check whether you may subtitle what you upload. That is on you, and we would rather say so plainly.
10where this struggles

The honest limitations

Most vendor pages end with a triumph section. You will hit these in week two anyway, so you may as well hear them from us first.

Overlapping dialogue
Crowd scenes, arguments and party sequences degrade recognition sharply. They reliably land in the flagged queue, which is the intended behaviour, but they do need a human.
Comedy and wordplay
Puns, rhyme and culturally specific jokes do not survive machine translation. If humour carries the title, budget for a review pass. More compute does not fix this.
Songs
We transcribe sung passages but make no attempt at singable translation. Lyric subtitling is a craft and pretending otherwise produces embarrassing output.
Heavy regional accents
Accuracy varies more by accent than by language. Some dialects simply have thin training data behind them.
No lip-synced dubbing
People ask. We do not do it and we are not pretending it is coming next quarter.
Files above 2 GB
The upload path caps at 2 GB. For a larger master, hand us a lower-bitrate proxy — the picture is never used, only the audio track, so a small proxy produces an identical transcript.
11the alternatives

Against building it yourself

Plenty of teams try, and the running cost genuinely is small. That is not the part that costs you.

ApproachPer hour, per languageTime to first outputWhat you are actually buying
Vidora Labs $4.00 first hour, then $1.00 / 15 minutes Minutes The conformance engine, the resumability, and someone else's problem when a vendor changes an endpoint.
Roll your own on raw APIs ~$0.50 in API spend Weeks to months A file. Turning that into publishable subtitles is the work, and it is most of the work.
Freelance subtitler $60 – $120 2 – 5 days Genuine craft. Worth it on your flagship title, impossible across a catalogue.
Subtitling house $150 – $400 3 – 10 days Deliverable specs, QC sign-off and someone to sue. Real value for prestige releases.

Our honest recommendation: machine pass for the catalogue, a human for the two or three titles that carry your brand. That mix is what most of our customers settle on.

12technical questions

Things engineers ask

Do you re-encode my video?

No. The picture is never touched. The transcription service reads the audio track out of your container directly, so there is no demux, no transcode and no quality loss anywhere in the chain. What you get back is a text file that sits alongside your existing encode.

Why is the transcript separate from the translation?

Because transcription is the expensive step and it only needs to happen once. Ordering five languages runs one transcription and five translation passes, not five of each. It also means the timing is identical across every language you order, which matters if a viewer switches tracks mid-scene.

Can I supply a glossary or character names?

Not through the interface yet. This is the single highest-value thing on our list, because feeding character names and their grammatical gender into the translation prompt improves Hebrew, Arabic, Hindi and Spanish output sharply. If you have a series where this matters, contact us — we will wire it for you by hand in the meantime.

What happens if my file has no speech?

The job fails with a clear message and the hold is released in full. You are not billed for a silent file.

Is there an API?

Not published yet. The application is built on one internally, so exposing it is a documentation problem more than an engineering one. If you would integrate against it, tell us — that is what moves it up the list.

Can I choose a different reading-speed profile?

The default is 17 characters per second, which suits streaming. Broadcast deliverables often require 15, and some accessibility specs are tighter still. Ask and we will set the profile on your account.

Ready in minutes

Run a real film through it tonight

Create an account, top up the wallet, and process a title you actually care about. A feature film in two languages costs about $16.00, so you can judge the output on real material rather than on a demo clip.