Skip to content

Subtitle editor (SRT/VTT). Sync that stays on your device.

Drop an .srt or .vtt file here
or click to browse
Files never leave your browser

Timing tools

Presets apply instantly. Factor = source fps ÷ target fps (23.976 → 25 = 0.95904).

Find & replace

Validation

0 cues
#StartEndDurTextActions
Times accept 00:01:02,345 or 00:01:02.345, both SRT and VTT styles.

Privacy: files are parsed in your browser. Nothing is uploaded, stored, or logged.

§ · written guide

How to use the Subtitle Editor (SRT/VTT)

This editor opens SRT and WebVTT subtitle files, lets you fix the text and timing cue by cue, and saves the result in either format. It can shift every timestamp, rescale them for a different frame rate, find and replace text, and flag timing problems. It suits video editors, translators and anyone fixing captions that are out of sync.

Step by step

  1. Load your subtitles

    Drop a file on the card that says Drop an .srt or .vtt file here, or click it to browse. You can also paste subtitle text into the box below and press Load pasted text. Loading replaces the three sample cues the editor opens with.

  2. Edit cues in the table

    Each row has Start, End, Dur and Text. Type times as 00:01:02,345 or 00:01:02.345 and press Enter or click away to apply. The plus button, Insert cue after this one, adds a two second cue after that row; the cross button, Delete cue, removes it. + Add cue at end adds one after the last cue.

  3. Shift the timing

    In Shift all timestamps, enter an amount, choose ms or seconds, and press Shift. A positive number moves every cue later and a negative number earlier. The box starts at 500 ms.

  4. Fix frame rate drift

    Enter a factor in Scale timestamps and press Scale, or click a preset such as 23.976 → 25, which applies at once. The factor is source fps divided by target fps, so 23.976 → 25 uses 0.95904.

  5. Find and replace

    Type in Find to see how many matches there are, enter the new text in Replace with, tick Match case if needed, and press Replace all. Matching is plain text, not patterns.

  6. Check and tidy

    The Validation panel lists problems; click one to jump to that cue. Sort by start puts cues in time order, and Renumber cues refreshes the numbers in the table.

  7. Export

    Press Download .srt or Download .vtt to save a file, or Copy SRT or Copy VTT to copy the text. The file keeps the name of the last file you opened, or is called subtitles if you have only pasted text.

Reading the result

  • The counter above the table shows the number of cues and the span from the first start to the last end. The sample reads 3 cues · span 00:00:08,500.
  • Dur is end minus start, in seconds. It turns red when a cue has zero or negative length.
  • Validation flags three problems: duration (zero or negative length), overlap (a cue starts before the previous one ends) and lines (more than 3 lines of text). It lists up to 60 at a time and shows No issues found when the file is clean.
  • A time you type that cannot be read is rejected: the box flashes, a message shows the accepted format, and the previous value comes back.

Tips and common mistakes

  • There is no undo. Shift, Scale and Replace all change every cue at once, so download a copy before a big change.
  • Shifting earlier stops at zero. Any time pushed below 00:00:00,000 is set to zero, and the message says some cues were clamped.
  • Use Shift when subtitles are off by the same amount all the way through, and Scale when they start in sync but drift further off over time.
  • When a VTT file is loaded, NOTE, STYLE and REGION blocks and any cue settings after the times are dropped, and exports number the cues 1, 2, 3 in order.
  • In Replace with, the browser reads $& and $$ as special codes: $& puts the found text back and $$ becomes a single $. Type $$ when you need a literal dollar sign before &.

Privacy and limits

Files are read and edited by your own browser. Nothing is uploaded and nothing is saved, so reloading the page brings back the sample cues and discards edits you have not downloaded. Copy SRT and Copy VTT write only to your clipboard.

Back to the tool

§ 02 · what you can do

Everything a subtitle editor should do.

Edit cue text inlineFix wording, timing and line breaks straight in the table, one subtitle at a time.
Shift every timestampNudge the whole track earlier or later by milliseconds or seconds to fix a lag.
Scale for framerateMultiply timing with one-click presets for 23.976, 24 and 25 fps conversions.
Find & replaceSwap names or wording across every cue at once, with optional case matching.
Validate instantlyOverlaps, zero-duration cues and over-length lines are flagged, click to jump.
Convert SRT ↔ VTTExport or copy as .srt or .vtt without leaving the page, no upload, no signup.
§ 04 · faq

Frequently asked questions.

Is the Subtitle Editor free?
Yes, completely free for everyone. No sign-up, no account and no usage limits.
Is it private? Are my subtitle files uploaded anywhere?
No upload, ever. The editor parses and edits your file entirely in your browser on your own device, the subtitle text never leaves your computer.
Can it convert SRT to VTT (or VTT to SRT)?
Yes. Open a file in either format and export the other, the editor reads SRT and WEBVTT timestamps and writes correct comma (SRT) or dot (VTT) milliseconds when you download or copy.
How do the framerate presets work?
Each preset multiplies every timestamp by source fps ÷ target fps. For example, 23.976 → 25 applies a factor of 0.95904, which fixes subtitles that drift when a film is sped up or slowed to a different framerate.
What does the validation panel check?
It flags cues with a zero or negative duration, cues that start before the previous one ends (overlaps), and cues with more than three lines. Click any issue to scroll straight to that cue and fix it.
Does it work offline?
Yes, once the page has loaded, editing, shifting, scaling and exporting all run locally, so a connection is not required to keep working.

Published · Last updated .

Priya sent you a message Online now

Talk to a Developer Now

Share your name and email to reply.

Reply