Subtitle Editor — Edit .srt and .vtt Files Online
Open a .srt or .vtt subtitle file and shift timestamps, scale playback speed, find/replace text, strip styling, or convert between formats. Pairs with the AI Subtitle Generator for a complete subtitle workflow.
Drop your SRT / VTT hereTap to select a file
Supports SRT, VTT, up to 25MB
How it works
- 1Drop a .srt or .vtt subtitle file. The first 6 cues preview so you know the file parsed correctly.
- 2Pick the output format (same as input, .srt, or .vtt) and any edits — time shift, time scale, trim, find/replace, strip styling.
- 3Click Apply changes. The processor parses every cue, applies the edits, and re-emits the file in the chosen format.
- 4The result downloads automatically. Round-trip safety: .srt → .vtt is loss-free; .vtt → .srt drops .vtt-only styling extensions.
What to do next
About Subtitle Editor
The Subtitle Editor solves the common subtitle-editing cases in a single browser tool. Most video editors let you import a .srt or .vtt file but make every other operation (retiming, find-and-replace across cues, format conversion) painfully clicky. Drop in any .srt or .vtt file, apply the edits you need, export back as .srt, .vtt or plain text. The entire pipeline runs locally in the browser tab.
The parser handles both formats correctly: SubRip indices and timestamps with comma-separated milliseconds, WebVTT with optional cue identifiers, optional positioning settings, the WEBVTT header, NOTE blocks, and dual hour-or-no-hour timecode formats. Cues that lack a separator line are still parsed because the format-detector falls back gracefully on malformed inputs. The five most common edits — time shift, time scale, find-and-replace (regex or literal), strip styling, trim leading silence — each compose with the others, so you can shift by +2.5 seconds, scale by 24/25 for a frame-rate change, regex-replace a repeated misrecognised word, and convert the result from .srt to .vtt in a single pass.
Time scaling is the operation that makes this tool worth bookmarking. When you have a 24-fps subtitle file that needs to play against a 25-fps video edit, every cue is roughly 4% out of sync — and the misalignment compounds over the timeline so the last cue is a full minute off. Time scaling multiplies every cue's start and end by your factor (24/25 = 0.96 in this case) and the result is in sync end to end. The same operation handles recap edits, fast-cut versions, and the every-PAL-vs-NTSC headache that plagues international content distribution. The tool reports the cue count and the source/output formats so the metrics panel doubles as an audit trail.
The most common pairing in practice is with the AI Subtitle Generator: that tool transcribes a video to a fresh .srt with Whisper-tiny, and then this editor cleans up the misrecognised words, splits any over-long cues, and shifts the timeline if the output drifted. Together they cover the full automated-subtitle workflow — generate, clean, export — without requiring a paid SaaS account or a desktop install. The editor is also useful as a standalone format converter: drop a .vtt downloaded from YouTube, export as .srt for a video editor that does not import VTT.
How it works
- 1Drop a .srt or .vtt subtitle file onto the upload area. Files up to 25 MB are accepted (more than enough for hundreds of hours of subtitles).
- 2The parser auto-detects the format and loads every cue with its start time, end time, and text.
- 3Apply edits: shift seconds, scale factor (e.g. 24/25 for fps conversion), trim before, find/replace with regex support, strip inline styling.
- 4Pick the output format — .srt, .vtt, or plain .txt with no timestamps for paste-into-notes use.
- 5The tool emits a fresh subtitle file in memory; you download it directly.
- 6Pair with AI Subtitle Generator for transcription, then with Add Subtitles to Video to burn the cues into the video frames.
Common use cases
- Shift a 23.976 fps subtitle file to align with a 24 fps edit by applying a small time scale factor
- Clean up a Whisper-generated .srt by find-replacing the model’s consistent misrecognition of a brand name
- Convert a YouTube .vtt download into .srt so it imports cleanly into a professional video editor
- Trim away two minutes of leading silence from a podcast subtitle file before publishing
- Strip styling from a fan-translated .srt so it plays cleanly on a TV that does not parse VTT cues
- Shift an entire subtitle track by -3.4 seconds to match a remastered video where the opening titles run slightly longer
FAQ
Which subtitle formats are supported?
SubRip (.srt) and WebVTT (.vtt) for both input and output. The two share a similar cue model so converting between them is loss-free for plain text. Style and positioning extensions specific to .vtt are stripped if you export to .srt.
How does time-shifting work?
Enter a positive or negative offset in seconds (or hh:mm:ss format) and every cue start and end shifts by that amount. Useful when an .srt is N seconds out of sync with the video edit it ships alongside.
What is time-scaling?
A multiplier applied to every cue’s start and end. Useful when a 24-fps subtitle file needs to play against a 25-fps video (use 24/25 = 0.96), or when a recap edit shortened a clip and the cues need to retime proportionally.
Can I edit the cue text by hand?
Yes — every cue is editable. Spell-correct, fix recognised words from a Whisper run, or tighten phrasing. The original timestamps are preserved unless you touch them explicitly.
Will my subtitle file upload anywhere?
No. The parser runs in your browser, the cue list lives in memory, and the export is a fresh download. Nothing leaves the device.
Why is the time scale factor 24/25 specifically?
A subtitle file produced for a 24-frame-per-second master plays back too fast on a 25-frame-per-second edit because every cue advances proportionally faster. Multiplying by 24/25 (= 0.96) compensates exactly. The reverse case (25→24) uses 25/24 (≈ 1.0417). Same maths handles 23.976→24, 29.97→30, and any other fps-pulldown shift.
What gets lost converting .vtt to .srt?
Plain text and timecodes carry over identically. .vtt-only extensions — colour codes, positioning, voice tags, region definitions — are stripped because .srt does not have an equivalent encoding. The tool does not warn loudly because most downstream consumers strip them anyway, but the metrics panel will show them as removed.
Can I edit individual cues by hand?
Yes. Every cue’s text is editable in the preview pane. The original timestamps stay locked to whatever they were unless you change them explicitly via the time-shift / time-scale options.
Does the find-and-replace support regex?
Yes. Toggle the regex switch and the find pattern is interpreted as a regular expression with global flag enabled by default. Common gotchas like back-references, character classes, and word-boundary anchors all work. If your pattern fails to compile, the tool falls back to a literal-string interpretation so the operation never silently fails.
Will my subtitle file upload anywhere?
No. The parser, the edits, and the emitter all run inside your browser tab. Nothing leaves the device.
How does it pair with the AI Subtitle Generator?
Generate a .srt with the AI Subtitle Generator (it runs Whisper.cpp locally on your video), drop the result into this editor for cleanup, and export the cleaned file. Most Whisper outputs need three tweaks on average — the editor handles all three in one tool without retranscribing.
Does it support .ass or .ssa subtitle formats?
Not yet. Those carry rich styling that loses fidelity in a round-trip through .srt or .vtt; supporting them properly needs a dedicated editor that exposes the styling controls. For now, convert to .srt in your video editor first and bring the simplified version here for retiming or text edits.
Related tools
AI Subtitle Generator
Generate accurate .srt subtitles from any video. Whisper.cpp transcribes the audio entirely in your browser and outputs a timestamped subtitle file ready to drop into your editor.
AI Audio Transcriber
Transcribe any audio file to text in your browser. Whisper.cpp recognises 99 languages and exports a clean .txt or timestamped transcript without uploading the recording.
Add Subtitles to Video
Burn an SRT or ASS subtitle file directly into your video frames so the captions show in every player. Files are processed entirely in your browser with FFmpeg WebAssembly.
Word Counter
Count words, characters, sentences, and paragraphs.
Character Counter
Count characters with optional maximum length enforcement.
Find & Replace
Find and replace text with regex support.