Subtitle Editor — SRT & VTT
Edit, fix, and convert SRT and VTT subtitle files in your browser. Drop a file to load it, adjust the timing of any cue with millisecond precision, batch shift every timestamp by a single offset, convert between SRT and VTT, and export the result. The whole editor runs locally, so private video projects, course material, and client work never leave your device. AI assistants cannot reliably add or shift timestamps in millisecond-accurate SRT or VTT files — this tool does the math deterministically.
Report Problem.srt or .vtt fileor paste text in the box below, or load a sample to try the editor
Paste Subtitle Text
How to Edit Subtitles
- Load a file by dropping an
.srtor.vttonto the upload area, clicking the dropzone, or pasting the raw text into the paste box. - Edit cues inline. Each cue shows its start and end time plus the text. Times are edited in
HH:MM:SS,mmmformat (SRT style) and re-display correctly when you leave the field. - Fix timing with the Batch Shift panel. Enter an offset in milliseconds and click Apply — every cue's start and end moves by that amount, which is the standard fix for subtitles that are a second or two off from the actual audio.
- Validate with the Sort & Validate button. The editor detects overlapping ranges, negative durations, and out-of-order cues, then reports each one.
- Split or merge long or fragmented cues. Splitting uses the characters-per-second (CPS) limit and prefers sentence boundaries. Merging combines adjacent cues that share the same speaker.
- Export as
.srtor.vtt. The output format dropdown controls which one is downloaded.
Features
Both major formats
Parse and write SRT (SubRip, used by YouTube, VLC, HandBrake, most video editors) and VTT (WebVTT, the HTML5 video standard). Convert between them with a single click.
Millisecond-precise editing
Every timestamp is stored internally as an integer of milliseconds, so adding 1500 ms or sorting by start time is exact. No floating-point drift across long files.
Batch shift by offset
Re-sync an entire subtitle file to a new video in one click. Enter +1500 to push everything 1.5 seconds later, or -800 to bring it earlier. Useful when a downloaded subtitle is one or two seconds off.
Sort & validate
Detect overlapping cues (where cue B starts before cue A ends), negative durations (end before start), and out-of-order entries. Sort by start time and review the report before exporting.
Split long cues at sentences
Cues that exceed the characters-per-second limit are split at the nearest period, question mark, exclamation point, or newline. Each piece gets an equal share of the original time range.
Live CPS stats
Each cue shows its current characters-per-second with a color badge. Green is comfortable, yellow is fast, red is too fast to read. The header stats show overall CPS so you can spot files that need cleanup.
100% private
Parsing, editing, and export all run in your browser. The file is read with the FileReader API and never leaves your device, so it's safe for unreleased course material and confidential client work.
AI-Proof
LLMs (ChatGPT, Claude, Gemini) cannot reliably add milliseconds to a 00:01:23,456 timestamp. They hallucinate timestamps, mis-format the comma vs period decimal separator, and drop sequence numbers. This tool stores every timestamp as an integer of milliseconds and outputs it correctly every time.
Frequently Asked Questions
What subtitle formats are supported?
The tool parses and writes both SRT (SubRip, the most common format used by YouTube, VLC, and most video players) and VTT (WebVTT, the standard for HTML5 video). You can convert between them with a single click — the file extension and content change automatically.
Can I shift all subtitle timings by a fixed offset?
Yes. Use the Shift All Timestamps control and enter a number of milliseconds (positive or negative, e.g. 1500 or -800). Every cue's start and end time is updated by that amount, which is the standard fix when a downloaded subtitle is one or two seconds off from the actual video audio.
Is my subtitle file uploaded to a server?
No. The parser, editor, and exporter all run in your browser using the FileReader API. The file never leaves your device, so it's safe for private video projects, unreleased course material, and confidential client work.
How do I fix overlapping or out-of-order cues?
Click the Sort & Validate button. The tool detects overlapping ranges (where cue B starts before cue A ends), negative durations (end before start), and out-of-order entries, then sorts by start time and reports a per-issue breakdown. You can fix or accept each one.
Can I split a very long cue into shorter ones?
Yes. Use the Split Long Cues action and pick a maximum characters-per-second (CPS) threshold. Cues that exceed it are split at the nearest sentence boundary (period, question mark, exclamation point, or newline) into equal time slices. The default 17 CPS follows industry guidance for readable subtitles.
Why are some subtitle characters per second (CPS) too high?
Most streaming platforms recommend 15-20 characters per second for comfortable reading. Anything above 20 CPS feels rushed. The Live Stats panel highlights cues in red when they exceed your chosen CPS limit so you can split or trim them before publishing.
What is the difference between SRT and VTT?
SRT uses comma as the decimal separator (00:00:01,500) and starts with a sequence number. VTT uses a period (00:00:01.500) and starts with a WEBVTT header. The content is otherwise similar. SRT is more widely supported by desktop players; VTT is the HTML5 video standard.
Does this work offline?
Yes. After the page loads once, the editor keeps working without a network connection. The parser, time math, format conversion, and file export are all built into the JavaScript, so you can edit subtitles on a flight, in a remote studio, or anywhere without Wi-Fi.
Related Tools
- Audio to Text — Generate a first-draft transcript from an audio file, then paste it into the Subtitle Editor to add timestamps.
- Text to Speech — Read your edited subtitle cues aloud to verify the timing matches the video before publishing.
- Video Cutter — Trim a long video to the segments that need new subtitles, then export each segment as a separate file.
- Audio Cutter — Extract a single cue's audio range for review or for use as a reference when retiming.