Caption Studio
Edit, fix, retime and convert SRT and VTT subtitles with a live local video preview. Free, fast, and your files never leave your device.
Drop an .srt or .vtt file here
or click to choose one
Everything runs inside this browser tab. No subtitle file and no video is ever uploaded to a server.
Video preview optional
Pick a video from this device to preview your captions against it. The video is opened locally and never uploaded.
Nudge to match: pause the video at the exact moment a line is spoken, click the cue row to select it, then align it here.
Fixes and timing tools
Shift timing. Positive values move captions later, negative values move them earlier.
Stretch by frame rate. Use this when the captions drift further out of sync the longer the video plays.
Retime with two anchors. Tell the tool where two cues really belong and everything between and around them is retimed linearly.
One click clean ups. Every one of these can be undone.
Find and replace across every cue, plain text only.
Issues 0
How to use Caption Studio
- Drop an .srt or .vtt file into the box above, or paste the subtitle text straight into the paste panel. The parser tolerates missing cue numbers, comma or dot millisecond separators, Windows line endings, WebVTT headers and NOTE blocks.
- Optional but recommended: open the video preview panel and pick the matching video from this device. The captions are drawn over the video as it plays so you can see exactly where the timing slips.
- Use the Fixes panel to shift, stretch or anchor the timing, rewrap long lines, remove formatting tags, or run a find and replace. Every operation is undoable with Ctrl+Z.
- Work through the Issues list. Each entry jumps straight to the cue that needs attention, whether that is an overlap, a caption that flashes past too quickly, or a line that runs past 42 characters.
- Download the finished file as SRT or VTT, or export a plain text transcript for notes, show pages and search engines.
Why use ZillaKit's subtitle editor?
Most subtitle editors online ask you to upload your captions, and often the video too, to somebody else's server before you can move a single timestamp. Caption Studio does the whole job inside your browser tab. The file is read with the FileReader API, parsed in JavaScript, edited in memory and written back out as a download. Nothing is transmitted anywhere, which matters when the footage is a client interview, a school lesson, a medical briefing or an unreleased cut of a film.
The tool is built around the work that actually eats time. A constant offset, where every line appears a second late, is one field and one click. A drift, where the captions creep further out of sync as the runtime goes on, is almost always a frame rate mismatch between a 25 fps broadcast master and a 23.976 fps release, so there are presets for that pair and every other common conversion. When the drift is not a clean frame rate ratio, the two anchor retime lets you say "cue 4 belongs at 00:00:12,400 and cue 830 belongs at 01:41:05,900" and everything in between is stretched linearly to match.
Quality checks run live while you type. Caption Studio flags overlapping cues, zero or negative durations, cues shorter than 0.7 seconds or longer than 8 seconds, lines past 42 characters, more than two lines in a cue, empty cues, and any cue that pushes past 21 characters per second of reading speed. These are the same guidelines that broadcast and streaming style guides use, and they exist because deaf and hard of hearing viewers rely on captions being readable rather than merely present. Fixing them is what separates a machine dump from a caption file people can actually follow.
Format conversion is built in and lossless in both directions. SRT to VTT rewrites the millisecond separator from a comma to a dot and adds the WEBVTT header. VTT to SRT does the reverse and drops cue positioning that SRT cannot express. Text is handled as UTF-8 throughout, so accented characters, non Latin scripts and typographic punctuation survive the round trip. It is free, there is no signup, and there is no watermark on anything you export.
FAQ
How do I sync subtitles that drift further out of sync as the video plays?
A growing offset is a speed problem, not a shift problem, so shifting every cue by a fixed amount will never fix it. Use the frame rate presets if you know the mismatch, for example 25 to 23.976 fps, or use the two anchor retime: note the true time of an early line and a late line, enter both, and the whole file is stretched linearly so the start, middle and end all land correctly.
What is the difference between SRT and VTT?
SubRip (.srt) is the older and more widely supported format. It numbers each cue and uses a comma before the milliseconds, as in 00:00:01,000. WebVTT (.vtt) is the format HTML5 video uses natively in browsers. It starts with a WEBVTT header line, uses a dot before the milliseconds, makes cue numbers optional, and supports positioning, styling and voice tags. If you are feeding a web player use VTT, and if you are feeding a desktop player, a TV or an upload form use SRT.
What are the 42 character and reading speed guidelines?
Common practice keeps each caption line to about 42 characters and each cue to two lines at most, so the text fits comfortably on screen without covering the picture. Reading speed is measured in characters per second, and around 17 to 21 characters per second is the usual comfortable ceiling for adult viewers, with lower limits for children's programming. Caption Studio flags anything above 21 characters per second so you can either extend the cue or trim the wording.
Can I convert SRT to VTT and back without losing anything?
Yes. Load a file in either format and export in either format. Timestamps are rewritten with the correct separator and the WebVTT header is added or removed as needed. Converting VTT to SRT drops cue positioning settings, because the SRT format has no way to represent them, and everything else including the text and timing is preserved exactly.
Are my subtitle and video files uploaded anywhere?
No. The subtitle file is read and edited entirely in your browser, and the optional video is opened from a local object URL that only exists inside this tab. Neither file is sent to a server, and closing the page discards everything.
Why do captions need a gap between them?
If one caption ends at the exact moment the next begins, some players show a flicker or drop a frame of the incoming cue. A minimum gap of two frames, roughly 84 milliseconds at 24 fps, is the usual convention. The Fix overlaps button trims the earlier cue so that gap always exists.