Subtitle Converter and Time Shifter
SRT to VTT, VTT to SRT or plain text, with a millisecond timing shift and checks for overlapping cues.
- Free
- No sign-up
- No watermark
- Runs in your browser
Loading the tool.
SRT vs WebVTT: what actually differs
Both formats store the same thing: cues, each with a start time, an end time and a line or two of text. What separates them is a handful of details, and those details decide whether a player shows your captions or silently ignores the file. A browser's video element reads WebVTT only, while desktop editors and many upload forms were built around SRT.
| Feature | SRT | WebVTT |
|---|---|---|
| First line of the file | Nothing special: the first cue number | The word WEBVTT, which is required |
| Timestamp format | 00:01:02,500 (comma, hours always written) | 00:01:02.500 (dot; hours may be left out) |
| Cue numbers | A counter above every cue: 1, 2, 3 | Optional identifiers, which can be any text |
| Styling and position | No standard; many players honor <i>, <b> and <font> | Cue settings (line, position, align, size) and CSS through ::cue |
| Comments | None | NOTE blocks, which players ignore |
| HTML5 <track> element | Not supported by browsers | The format <track> is built for |
| Special characters | Written as they are | & and < must be escaped as & and < |
| Typical use | Editing software, desktop players, file uploads | Web players and HTML5 video |
What changes on the way through: SRT to WebVTT adds the header, turns the commas into dots and drops the counters; WebVTT to SRT numbers the cues from 1, turns the dots into commas and removes cue settings and NOTE, STYLE and REGION blocks, which SRT cannot hold. A shift computes new time = old time + offset, rounded to the millisecond; a cue that would start before 0:00.000 starts there, and a cue that would end at or before it is removed.
How it works
Open a file or paste the text. Drop an .srt, .vtt or .txt file on the box, or paste the subtitles into the field under it. The converter names the format it found, counts the cues and tells you when a block could not be read.
Pick the format and fix the timing. SRT input starts on WebVTT and VTT input on SRT; switch to plain text for a transcript. Type an offset such as -1.5 or 0:02, or nudge by half a second, and the cue list shows the new times at once.
Check, copy or download. Read the notes on overlapping cues and long lines, then copy the converted text or download it as a UTF-8 file named after the original.
What you get
- Reads the files real editors produce
- Byte-order marks, Windows line endings, dots in SRT timestamps, missing hours and blank lines inside a cue are all accepted. A block that still cannot be read is counted and reported, never dropped without a word.
- Keeps accented letters intact
- Files saved in the old Windows-1252 encoding, or in UTF-16, are detected from their bytes and decoded correctly, and a UTF-8 file with one stray bad byte stays UTF-8 with the damaged spot pointed out. The result is always written as UTF-8, so an é stays an é.
- A shift you can trust to the millisecond
- Offsets are applied in whole milliseconds, the finest step either format stores. Cues pushed past the start are trimmed to 0:00 or removed, and the converter tells you how many, so no line disappears unnoticed.
- Advice before you upload
- Overlapping cues, cues with zero duration, lines longer than 42 characters and cues with more than two lines are flagged by cue number, with a count when the list runs long. They are advice rather than errors: the file converts either way.
Straight to the pair you need
Questions people ask
Which subtitle formats does this converter read and write?
Three, and in any combination: SubRip (.srt), WebVTT (.vtt) and plain text. What arrives is recognised from the contents rather than the extension, so a file with the wrong name still opens, and the output format is picked after the file is read — one drop can therefore leave as a caption track and again as a transcript without opening it twice. Where a direction has a page of its own, it is listed further down with the output already selected.
What is lost when I convert VTT to SRT?
Only what SRT has no place for: cue settings such as position and alignment, NOTE comments, STYLE and REGION blocks, and custom cue identifiers, which become plain numbers. WebVTT-only markup loses its tags but keeps its words: voice and class spans, language spans and karaoke timestamps go, and a ruby reading follows its base text in brackets. Timings, text, line breaks and italic, bold or underline tags come through unchanged.
How do I fix subtitles that are out of sync?
Measure the gap once and shift the whole file by it. Note when a line is spoken in the video and when its cue starts in the list; if the text shows up too early, enter the difference as a positive number, if too late, as a negative one. A delay that grows over the length of the video usually means the subtitles were timed for a different frame rate, which a constant shift cannot fix.
Can I convert subtitles on my phone?
Yes. Conversion is text processing and needs none of the video features some browsers lack, so a current mobile browser is enough: pick the file from your files app or paste the text, then use Download or Copy.
Why do accented letters look broken in my subtitle file?
Because the file was saved in one text encoding and opened in another. The converter checks the bytes, reads UTF-8, UTF-16 and the older Windows-1252, and says which one it used; the file you download is always UTF-8, the only encoding WebVTT allows and the safest choice for SRT.
What does the plain text option give me?
A transcript: timings and tags removed, the lines of each cue joined together, and a new paragraph wherever the speech pauses for 2 seconds or more. It is handy for show notes, a blog post or checking a quote.
Can I convert the subtitles of an unreleased video here?
Yes. The file is read and rewritten by this page inside your browser tab, and the converter makes no network request at all, so neither the text nor the file name goes anywhere.
Start from the video, not a file
This converter reworks captions that already exist. GPT-Video starts from the video instead: it transcribes the speech, times each word and styles the captions on the vertical clips it cuts from a long recording.
Related
Your file is processed on your device and never uploaded.