Runs in your browser, no upload

SRT to VTT Converter Captions That Load in a Browser

Drop an .srt file or paste its contents and get a WebVTT file that an HTML5 video element, Vimeo or a learning platform will actually load. The WEBVTT header is added and the comma in every timestamp becomes a full stop. The conversion runs on this page and the file never leaves your computer.

Loading the converter…
1

Paste or drop the SRT

Drag the .srt file into the box or paste its text. Files from YouTube, video editors, translation agencies and transcription tools all work.

2

Convert

The WEBVTT header goes on top, 00:01:12,500 becomes 00:01:12.500, and the cue text is kept exactly as it was.

3

Copy or download

Download the .vtt file and reference it in a <track> element, upload it to your video host, or copy the text into a content management system that asks for captions.

Why a browser will not play your SRT

HTML5 video supports exactly one caption format in the <track> element, and that format is WebVTT. If you point a track at an SRT file, nothing appears, and the browser console rarely explains why. The same applies to most JavaScript video players built on top of the native element, to Vimeo uploads and to many course platforms, which validate the file and reject anything that does not start with the WEBVTT header.

The change needed is small. A VTT file begins with the line WEBVTT, followed by a blank line. Timestamps use a full stop before the milliseconds instead of the comma SRT uses. Cue numbers are optional in VTT, so the converter keeps them as cue identifiers, which is valid and harmless. The caption text itself does not change. Doing this by hand in a text editor is possible but tedious for a file with several hundred cues, and a single missed comma is enough for the player to drop the rest of the track.

Typical situations

A marketing team has subtitles from the agency as SRT and needs the product video to show captions on the company website. A lecturer has an SRT exported from a video editor and the university LMS accepts only VTT. A developer embeds a video with a <video> tag and wants the accessibility checker to stop complaining about missing captions. In each case the content is finished and only the container is wrong.

Once you have the VTT, add it with a line like <track kind="captions" src="video.vtt" srclang="en" label="English"> inside the video element. Make sure the file is served from the same origin as the page or with the right CORS header, because browsers refuse cross-origin tracks silently.

Nothing is uploaded

The converter is a script that runs in the page you are looking at. Your SRT is read in the browser, rewritten in memory and handed back as a download. We never see the file, there is no account to create and nothing is stored. This makes the tool suitable for internal training material, client work under embargo and anything else you would rather not send to a third-party server.

No subtitle file yet

When all you have is the video, Transcrify can produce the captions from the audio. Upload the file on the video transcription page and the transcript opens in your browser with timestamps and speaker labels; 10 transcriptions of up to 3 hours each are free and need no sign-up. With a free account you can correct the text and download it as VTT straight away, as well as SRT, ASS and TXT, so there is nothing left to convert.

Frequently asked questions

Is my SRT file sent to a server?

No. The conversion runs in your browser and the file stays on your computer. There is no upload, storage or account involved.

Does the converter keep cue numbers?

Yes. VTT allows an optional identifier line before each timing line, so the original numbers are kept there. Players ignore them, and they make it easier to compare the two files.

What about italics and bold in the SRT?

Simple tags such as <i> and <b> are valid in WebVTT as well and are passed through unchanged. Font colour tags are not part of VTT and are removed.

The VTT loads but the captions never appear on my site.

Check that the file is served from the same domain as the page, or that the server sends an Access-Control-Allow-Origin header. Browsers block cross-origin caption tracks without reporting an error. Also confirm the <track> element has kind="captions" or kind="subtitles" and that a default attribute or the player UI enables it.

Can I go the other way, from VTT to SRT?

Yes, the VTT to SRT converter does the reverse, including removing the header and cue settings that SRT cannot carry.

Convert your SRT to VTT

Scroll up, drop the .srt file into the converter and download the WebVTT file a second later, without the file leaving your browser.