All articles

Translating SRT subtitles into 100 languages, technically

What an SRT file actually contains, how YouTube stores subtitle tracks, why timing survives translation, and three routes from one file to a hundred languages.

Part of the guide: YouTube localization: the complete guide

An SRT file is the plainest format in video: numbered blocks, a timecode range, and lines of text. That plainness is exactly why it survived thirty years and why translating subtitles scales so well: the timing is data, the text is data, and only one of them needs to change. Here is how that works end to end on YouTube.

What is actually inside an SRT

Each cue is three things: an index, a start and end time, and the text shown between them. No fonts, no positioning tricks, no styling to break. When a file like this is translated, every timecode stays byte-identical and only the text lines are replaced. That is why a well-timed original produces well-timed translations automatically: synchronization is inherited, not redone.

The honest caveat: text length is not inherited. German runs longer than English, Chinese shorter. A cue timed for a six-word English line may carry a nine-word German one, and reading speed suffers at the margins. For most content this is acceptable; for dense dialogue it is the one thing worth spot-checking.

How YouTube stores subtitles

On YouTube, subtitles live as tracks: one per language, attached to the video, visible in Studio under the Subtitles tab. A track can be uploaded as a file, typed by hand, or written through the official Data API. Viewers pick a track in the player, and YouTube surfaces the one matching their language on its own.

Two things people expect to work but that do not exist: there is no «master file» that updates all languages at once, and there is no automatic propagation of edits. Each track is independent. Fix a typo in the original and the twenty translations keep the typo until each is regenerated or edited.

Three routes from one file to a hundred languages

RouteHow it goesWhere it breaks
By hand in StudioTranslate the file per language, upload each in the Subtitles tabA hundred languages is a hundred uploads. Nobody does this twice
Generic file translatorsTranslate the SRT elsewhere, then still upload each result manuallyHalves the work, keeps the hundred-upload problem
Through the YouTube APIThe tool reads the video's subtitle text, translates, writes each track directly to the videoNeeds channel authorization through Google's consent screen

YouClicker takes the third route: it uses the video's existing subtitle text as the source, translates into the selected languages and publishes each as a normal track via the Data API. The tracks appear in Studio like hand-uploaded ones, and each costs one point on top of the title-and-description point for that language. There is no separate per-file pricing: a video into 50 languages with subtitles is 100 points.

Where the source text comes from

Translation needs text, not audio. If the video already has a creator-published track in the original language, that is the ideal source. If not, YouTube has usually generated automatic captions for the original language, and those can serve as the source, with a catch: recognition errors in them will be translated faithfully. The quality ceiling of every translated track is the quality of the original text, which is why cleaning up the original captions once pays off across all hundred languages at once.

How published tracks differ from the player's own auto-translate, and when each is enough, is the subject of uploaded tracks vs auto-translate.

A note on Shorts

Everything above applies to Shorts as well: they carry subtitle tracks like any other video, and feeds autoplay muted by design, which makes on-screen text carry more of the load. What that means for wordless and near-wordless content is covered in Shorts, muted autoplay and subtitles.