Subtitle Editor
Open an SRT or WebVTT file, paste one, or start from nothing, then edit each cue's start, end and text with your own video in the preview. Every time is a whole millisecond: an offset moves the whole file or everything from one cue on, a frame-rate stretch fits subtitles timed for 23.976 fps to a 25 fps video, and a two-point sync pins two cues to the moments you hear them and moves every other time along the same line. Cues that end before they start are marked and hold back export, overlapping cues are listed with how long they share the screen, and a VTT export keeps identifiers, cue settings and NOTE blocks as they were written.
Paste a whole file, then Read text. Nothing is uploaded.
Open subtitles, or start from nothing
SRT and WebVTT files are read on this device. Add your video afterwards to time the cues against it.
Or drop a .srt or .vtt file here, or paste the text on the left.
- Cues
- none yet
- Timing
- unchanged
- Overlaps
- none yet
- To fix
- none yet
- Export
Times can be typed as 00:00:01,500, 1:30 or 1.5 (seconds); in a time field the Up and Down arrows move it by 100 ms, and by a second with Shift. The arrow keys also step through the cue list. The preview shows the text a player would show, with tags such as <i> removed; the list, the editor and the export keep the text exactly as written. An SRT export numbers the cues from 1 and leaves out VTT identifiers, cue settings, NOTE, STYLE and REGION blocks, and says which it left out. Files over 8 MB or with more than 50,000 timing arrows (-->), one per cue, are not opened.
Common questions
- How do I shift all subtitles earlier or later?
- Open Offset and stretch, type the offset in milliseconds (500 or -1200) or in seconds with an s (1.5s), and press Apply offset. Every start and end moves by exactly that amount, so 00:00:01,000 --> 00:00:03,000 plus 500 ms becomes 00:00:01,500 --> 00:00:03,500. Select a cue first and tick From cue N on to move only that cue and the ones after it, for a break that put only the second half out of sync. An offset that would push a cue before 00:00:00,000 is refused, and the message gives the furthest these cues can move back.
- My subtitles drift further out of sync as the video goes on. How do I fix that?
- A growing drift usually means the subtitles were timed for a different frame rate. Under Stretch by frame rate, pick the rate they were timed for and the rate of your video from 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60; the NTSC rates are the exact fractions, so 23.976 is 24000/1001. Stretching 23.976 to 25 turns 00:16:41,000 into exactly 00:16:00,000. If you do not know the rates, Stretch between two cues sets the start of one early cue and one late cue to the times you hear them, and moves every other time along the same straight line. Both round each time to the nearest millisecond.
- Can it convert SRT to VTT, or VTT to SRT?
- Yes: pick SRT or VTT under Export, then Download or Copy. SRT writes 00:00:01,500 and VTT writes 00:00:01.500, and a VTT file starts with a WEBVTT line. SRT has no place for VTT identifiers, cue settings, NOTE, STYLE or REGION blocks or the header text, so an SRT export numbers the cues from 1, leaves those out and says what it left out. A VTT export keeps them as written.
- Why will it not let me download my subtitles?
- Something in a cue would break the file for a player: a cue that ends before it starts, a cue whose start and end are the same, an empty line inside a cue's text (which ends the cue early), or --> inside the text, a VTT identifier or cue settings. The message names the cue and selects it, the To fix cell counts them, and Checks lists them with the cues they are in. Fix them and the export goes through. Overlaps and cues with no text are listed too, but they do not stop an export.
- What counts as an overlap?
- A cue that starts while an earlier cue is still on screen. Each one is listed with both times and how long the two share the screen: in the example, cue 3 ends at 00:00:09,200 and cue 4 starts at 00:00:09,000, so they overlap by 200 ms. Cues that touch, one ending at the moment the next starts, do not overlap. Checks also lists cues that start before the cue above them and offers Sort by start time.
- Will my video play in the preview?
- Open video accepts a video or audio file from your device and plays it in the page, so it depends on the codecs your browser supports: MP4 with H.264 and WebM play in most browsers, while some MKV or HEVC files do not. If it cannot play, the page says so and the subtitles still work with the time slider. Play cue plays the selected cue and stops at its end, and Start at playhead and End at playhead set a time from the moment on screen.
- Which subtitle files can it open, and are they uploaded?
- SRT and WebVTT, as files or pasted text, in UTF-8, in UTF-16 with a byte order mark, and in Windows-1252 when the bytes are not valid UTF-8, which is common in older SRT files. A byte order mark and Windows line endings are read too, and exports are UTF-8. Files over 8 MB or with more than 50,000 timing arrows (-->), one per cue, are not opened. Everything stays in this tab: the page remembers only the export format, the timeline zoom and Match case, never the subtitles.
- Does it transcribe speech or translate subtitles?
- No. This is a manual editor: every time and every line is what you open or type. To make a first draft from speech, Audio to Text on this site writes an editable transcript that exports as SRT or VTT, which you can then open here.
Manual subtitle editing: every time is a whole millisecond, an offset moves each start and end by exactly the amount you set, and a frame-rate change or two-point sync rounds each time to the nearest millisecond. It flags cues that end before they start, which hold back export until they are fixed, and cues that overlap. There is no speech recognition or translation, and whether a video plays in the preview depends on the codecs your browser supports.