NoaLingua for Chrome
Add to Chrome — Free Add to Chrome

Free tool

Dual subtitle maker: merge two subtitle files into one

Two languages in one .srt, .vtt or .ass file, made in your browser

Choose a subtitle file in the language you are learning and one in a language you already know. The tool pairs every line by its timing, lets you shift a file that runs early or late, and saves one .srt, .vtt, .ass or Anki file. Your files never leave this browser tab.

This tool reads your files inside the browser, so it needs JavaScript switched on.

1 · The language you are learning

2 · The translation you already understand

The first file sets the timing. The shift and the correction below move this one.

3 · How the translation looks

How the two files are paired

Most subtitle mergers join cue 1 to cue 1 and cue 2 to cue 2. That breaks the moment two releases split a sentence differently — one file shows a two-line cue where the other has two short cues — and from there every pair is wrong until the end of the film.

This one pairs by time. Each translation line joins the line of your learning file it overlaps the most. A line that overlaps nothing joins the nearest line within one second; beyond that it is left out and counted in the result, so a timing problem shows up before you press play rather than halfway through the film. The file in the language you are learning sets the timing, because it is the one you are reading.

A translation that is early or late by a constant amount needs a shift. One that starts in sync and drifts further out was timed for a different frame rate, and the frame-rate correction rescales it. Watch the pairing count in the result as you adjust either: it rises when the two files come into line.

Which file to download

.srt
For VLC, mpv, Plex, Kodi and most players that accept an external subtitle file. Each cue shows the language you are learning with the translation on the line beneath it.
.vtt
For HTML5 video players and course platforms that ask for WebVTT. The same two lines per cue.
.ass
For players that render styled subtitles, such as VLC and mpv. The language you are learning stays at the bottom and the translation moves to the top of the picture in a different colour, so the two never cover each other.
Anki cards (.txt)
A tab-separated file with one note per paired line: the sentence, its translation and the timestamp. Lines without a translation are left out, because a card with nothing on the back teaches nothing.

When the letters come out wrong

Older subtitle files — Serbian, Croatian, Bosnian, Polish, Russian, Greek, Turkish and Arabic ones especially — are often saved in a Windows code page rather than UTF-8. Read as the wrong encoding, Serbian č turns into è and Cyrillic turns into a run of accented Latin letters.

The tool recognises UTF-8 and UTF-16 by itself. For anything else it guesses between the Central European, Cyrillic and Western European code pages from the bytes, and says so when it guessed. If the preview still looks wrong, choose the encoding by hand. Every download is saved as UTF-8, so the merged file displays correctly from then on.

When you do not need a file at all

On YouTube and Netflix, NoaLingua shows both languages over the player in desktop Chrome with no subtitle file to find. Every word in the line is clickable, a sentence can be saved with its context, and on YouTube the translation is fetched ahead so it is ready when the line appears. See dual subtitles on YouTube and dual subtitles on Netflix.

A merged file is the better route wherever an extension cannot run: a smart TV, a tablet, a media server or a film on your own disk. Why that limit exists is explained in do dual subtitles work on the Netflix app.

Have only one subtitle file and want to read it rather than watch it? NoaLingua’s reader imports .srt and .vtt and turns it into two columns of prose with clickable words. For flashcards, the YouTube subtitles to Anki guide covers the whole sentence-mining route.

Add to Chrome — Free Add to Chrome Opens the Chrome Web Store listing NoaLingua — beyond dual subs: video, web, PDF — free, no account, Chrome 138 or newer.

Questions about merging subtitle files

Are my subtitle files uploaded anywhere?

No. The page reads both files with your browser’s own file API and builds the result in memory. The site is static files with no endpoint that could receive an upload, and its security policy blocks requests to other servers. Closing the tab discards everything.

Why do my two subtitle files not line up?

They almost always come from different releases of the video. If the translation is early or late by the same amount throughout, enter that gap as a shift. If it starts in sync and drifts further out as the film goes on, the two releases run at different frame rates, most often 25 and 23.976 frames per second, and the frame-rate correction fixes it.

Which subtitle files can it read?

SubRip (.srt) and WebVTT (.vtt), in UTF-8, UTF-16 or one of the older Windows, Japanese, Chinese and Korean encodings. It does not read .ass, .sub or subtitles embedded inside a video file; extract those to .srt with your video software first.

Can it translate a subtitle file for me?

No. It pairs two files that already exist and never invents a translation. If you only have one language, NoaLingua translates YouTube captions sentence by sentence while you watch, and its reader turns an imported .srt into two columns of text with clickable words.

How do I load the merged file in VLC?

Give the .srt the same name as the video and keep it in the same folder, or drag the file onto the playing video. Both lines of every cue appear together. The .ass file keeps the two languages apart, with the translation at the top of the picture.