Subtitle Converter and Timing Shifter

The two subtitle formats are nearly the same file: SRT numbers its cues and puts a comma before the milliseconds, VTT starts with the word WEBVTT and uses a full stop. Get that one character wrong and a player shows nothing and explains nothing. Drop a file in to convert it, and while it is open, move every cue by the same number of seconds, because subtitles running two seconds ahead of the speech is the reason most people open the file at all. Thai subtitle files still arrive in Windows-874 and are read correctly here rather than as a row of symbols.

1 · The subtitles

Negative to make the subtitles appear earlier, positive to make them later. A cue cannot start before zero and is held there rather than dropped.

2 · The result

Add a subtitle file, or paste one.

Frequently asked questions

What is actually different between SRT and VTT?

Very little, which is why the failure is so annoying. SRT numbers every cue and separates the seconds from the milliseconds with a comma. VTT begins with the word WEBVTT, makes the numbers optional and uses a full stop. A browser video element wants VTT and shows nothing at all when given an SRT, without saying why.

Why is a timing shift on a conversion tool?

Because it is why the file gets opened. Subtitles that run ahead of or behind the speech are the common complaint, and the fix is one addition applied to every timestamp. Doing it by hand across nine hundred cues is how mistakes get made, and putting it on a separate page would mean saving the file in between.

My Thai subtitles come out as symbols in other tools.

Because the file is written in Windows-874, the old Thai encoding, and the tool assumed UTF-8. Here the encoding is worked out from the bytes rather than assumed, the same way our CSV tools do it, and the file that comes out is UTF-8 so it will not happen again.

What are the warnings about overlapping cues?

Three faults that no player complains about: a cue that ends before it starts, two cues on screen at once, and cues that are not in time order. A file with any of them is still perfectly readable and still behaves oddly, so they are counted rather than left for you to notice during playback.

Is my file uploaded?

No. It is read and rewritten in this tab. The site’s security policy sets connect-src ‘none’, so the browser blocks network requests from these pages, so the subtitles for an unreleased video could not be sent even if the code tried.