SRT to VTT
Convert .srt captions to .vtt for HTML5 video, and back. Direction is detected from the file, timestamps are normalized, and on this page nothing is uploaded.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
Direction is detected from the file. Use the toggle to override it.
Converted captions will appear here...
How to Convert SRT to VTT Online
-
Drop your .srt file, or paste the caption text into the left panel
-
The direction is detected from the content
a comma before the milliseconds means SubRip, a dot and a WEBVTT header mean WebVTT. Use the toggle if you want to force it. -
Check the preview on the right
Cue text is copied through unchanged; only the timing format and the header change. -
Download the converted file, or copy it straight into your page
Common Use Cases
Adding captions to an HTML5 video element, which requires WebVTT
Taking captions out of a player that exports WebVTT and into an editor that only reads SubRip
Fixing a caption file a player rejects because it has the wrong separator or no header
Normalizing timestamps in a file assembled from several sources
Why Use Our SRT to VTT Converter?
SubRip and WebVTT describe the same thing — a list of cues, each with a start time, an end time, and some text — and they disagree on almost nothing except punctuation. SubRip separates the milliseconds with a comma and numbers every cue. WebVTT uses a dot, makes the number optional, opens the file with a WEBVTT line, and adds optional positioning settings after the timing.
That small gap is enough to make a caption file fail silently. A browser handed an SRT file through a track element renders no captions and reports nothing useful; a player expecting SubRip chokes on the WEBVTT header. The fix is mechanical, which is exactly why it should not be done by hand.
This converter parses either dialect into the same cue list, normalizes every timestamp to hours, minutes, seconds, and three fraction digits, and writes the other format. A malformed timing line is reported with its line number instead of quietly truncating the file. On this page everything runs in the browser and the caption file is not uploaded. The REST API and MCP tool are a separate path: a call sends the captions you include to FindUtils, which converts them without storing them.
How it compares
Cloud caption converters upload the file, and a caption file is a full transcript of what was said. For an unreleased episode, an internal training video, or a client's footage, that upload is the problem. On this page the conversion happens in the tab, so the transcript stays on your machine. The REST API and MCP tool are a separate path: a call sends the captions you include to FindUtils, which converts them without storing them.
Caption Conversion Tips
- SubRip requires sequential cue numbers; WebVTT treats them as optional identifiers. Converting to SRT renumbers from 1, whatever the source used.
- WebVTT cue settings such as line:90% or align:start are preserved when writing VTT and dropped when writing SRT, because SubRip has no equivalent.
- NOTE, STYLE, and REGION blocks are WebVTT metadata, not captions. They are skipped rather than turned into cue text.
- A timestamp with fewer than three fraction digits is padded, so 00:00:01,5 becomes 00:00:01.500 and players read it correctly.
- A WebVTT timestamp may omit the hours field. It is expanded to the full HH:MM:SS form when writing SubRip, which requires it.