Skip to content

Free Subtitle Editor & Converter

Edit SRT and WebVTT captions with timing adjustments, overlap checks and local video preview.

✓ Free to use✓ No sign-up✓ Browser-based

Loading tool…

How to edit SRT captions and convert them to WebVTT

This workspace edits subtitles you already have. It helps align caption timing and identify readability issues without transcribing or translating your recording.

  1. Import an SRT or WebVTT file, or paste timed subtitle text.
  2. Review timing checks and adjust cue text, start and end times.
  3. Optionally add a local video to preview captions and set times from its playhead.
  4. Choose SRT or WebVTT and download the edited subtitles after fixing invalid cues.

Who this subtitle workspace helps

Video editors, teachers, podcasters and small business owners often receive a caption file that is almost right. The words are fine, but every line appears a second too early, a few cues overlap, or a client needs WebVTT for a web player while the file arrived as SRT. This editor is built for that cleanup stage.

A common case is a caption file exported from one cut of a video and reused on a slightly different cut. Another is a file timed for a 25 fps broadcast master that drifts further out of sync on a 23.976 fps web version. The global shift and time scale fields handle both without retyping a single timestamp.

It also suits accessibility reviews. The built-in checks point to cues that flash by in under a second, lines longer than 42 characters and cues that ask viewers to read more than 20 characters per second.

Worked example: fixing a late file and a frame-rate drift

Load the example file. Its first cue runs from 00:00:01,000 to 00:00:04,000 and its second from 00:00:05,000 to 00:00:08,000. Suppose speech in your video starts 1.5 seconds later. Enter 1.5 in Shift all cues, leave Time scale at 100 and choose Apply timing adjustment. Exported as WebVTT, the cues now read 00:00:02.500 --> 00:00:05.500 and 00:00:06.500 --> 00:00:09.500.

Now take the original file and assume it was timed for 25 fps but the new video runs at 23.976 fps. The scale is 25 divided by 23.976 times 100, which is about 104.27. With a shift of 0 and a scale of 104.27, the SRT export reads 00:00:01,043 --> 00:00:04,171 and 00:00:05,214 --> 00:00:08,342. Each time is multiplied by 1.0427 and rounded to the nearest millisecond.

If you apply both changes in one step, the scale is applied first and the shift is added afterward.

How the checks and conversions work

SRT writes times as HH:MM:SS,mmm with a comma and numbers each cue. WebVTT starts with a WEBVTT header, uses a period before the milliseconds and does not need cue numbers. On export the tool writes the format you choose, renumbers SRT cues in their current order and keeps the caption text as plain lines.

The reading-speed check removes spaces and divides the remaining characters by the cue duration. A 1.5 second cue holding 60 non-space characters scores 40 characters per second, well over the 20 limit. The overlap check compares each cue with the one listed before it, so use Sort by start time before trusting that finding.

Imports are limited to 2 MB and 5,000 cues. An optional preview video can be up to 100 MB, and it is only used for playback in the page.

Common mistakes to avoid

Pressing Apply timing adjustment twice applies the shift twice, because each run works on the current cues. If timing goes wrong, use Restore imported cues and start again rather than trying to undo by hand.

Do not convert WebVTT files that rely on positioning or styling and expect those settings to survive. The tool tells you when such data was ignored. Also remember that Wrap lines splits text at the width you set, so review line breaks in names and numbers before export.

Useful tips and limitations

  • Timing shifts apply to the current cues each time. Restore the imported baseline if you need to undo all changes.
  • WebVTT styles and positioning are not retained. Export contains plain timed cues.
  • Use Merge with next cue to join two very short cues into one readable caption instead of stretching each one separately.
  • Download checks saves the current findings as a JSON file, which is handy when you hand captions to a reviewer.

Common questions

Can this subtitle tool generate captions from speech?

No. It edits existing SRT or WebVTT subtitles without speech recognition or AI.

Can I adjust every subtitle to a different frame rate?

Use time scaling with old FPS divided by new FPS times 100. Preview synchronization and adjust an offset if needed.

Why is the Download subtitles button disabled?

Export is blocked while any cue has empty text or an end time that is not after its start time. Fix those cues and the button becomes available.

Which timestamp formats does the importer accept?

It reads HH:MM:SS,mmm and MM:SS.mmm style times, with either a comma or a period before the milliseconds, as long as minutes and seconds are 59 or less.

Can I add a caption that is missing from the file?

Yes. Add cue at playhead creates a three second cue starting at the current preview position, which you can then edit and retime.

Subtitle text and optional preview video stay on your device.

Read our privacy policy · About ToolWorld Online