SRT to VTT Converter - Free Desktop App
Convert SubRip (.srt) subtitles to WebVTT (.vtt) offline. FileHop rewrites the timestamps to the WebVTT format, adds the required header, and keeps your text and line breaks intact. SRT to VTT is lossless, with no file size limits, no accounts, and no uploads.
How it works
- 1 Download FileHop Free · 144 MB · Mac & Windows
- 2 Open the folder with your files It opens like Finder or File Explorer.
- 3 Right-click your file Pick the tool you need — it runs instantly, on your device.
Tip: SRT to VTT is lossless - your text, line breaks, and timings come through exactly.
Just 144 MB
Why Desktop Subtitle Conversion Beats Online Tools
| Feature | Online Tools | FileHop Desktop |
|---|---|---|
| Upload Required | ❌ Required | 🎯 Never |
| File Size Limit | ❌ 50MB max | ♾️ Unlimited |
| Speed | ⏳ Slow (upload/download) | ⚡ Instant |
| Batch Processing | ❌ 1 file | ✅ 1000s |
| Privacy | ⚠️ Risky (cloud upload) | 🔒 100% Local |
| No Watermark | ⚠️ Sometimes added | ✅ Never |
| Offline | ❌ No | ✅ Yes |
| Cost | Free | Free ✅ |
SRT vs WebVTT — What Actually Changes
The two formats are almost identical. These are the differences that matter when a player rejects your subtitles.
| Aspect | SRT (.srt) | WebVTT (.vtt) |
|---|---|---|
| File extension | .srt | .vtt |
| Header line | None | WEBVTT (required) |
| Millisecond separator | Comma — 00:00:01,000 | Period — 00:00:01.000 |
| Cue numbers | Required | Optional (kept as cue IDs) |
| Web video <track> | Not supported by browsers | The required format |
| Styling / positioning | Basic inline tags only | Cue settings & CSS styling |
Rule of thumb: web video needs .vtt, almost everything else (media players, editors, uploads) is happy with .srt.
When You Need This
Real-world reasons people convert SRT to VTT.
Adding captions to a website video
The HTML5 <track> element only loads WebVTT. Convert your .srt file, drop the .vtt next to your video, and captions just work in every browser.
Web video players (Video.js, Plyr, hls.js)
Most JavaScript players expect WebVTT tracks. If your captions came from a transcription tool as .srt, convert them once and they'll load cleanly.
HLS / streaming packaging
HLS subtitle playlists reference WebVTT segments. Convert your source .srt files to .vtt before packaging so the timecodes and header are valid.
Fixing subtitles that "won't load"
A .vtt that's missing the WEBVTT header or still uses comma-millisecond timestamps will silently fail. Converting from the original .srt produces a clean, valid file every time.
Why Choose FileHop Desktop?
Privacy First
Files never leave your computer. No cloud upload, no data collection, 100% local.
Lightning Fast
Process files 10x faster than online tools. No upload wait, no download wait.
No Limits
Convert unlimited files of any size. Batch process thousands in one click.
Batch Processing
Convert, compress, or edit hundreds of files at once — a whole folder in one go.
Works Offline
No internet required. Perfect for flights, secure environments.
Free to Use
No trial limits, no watermarks, no credit card required.
Frequently Asked Questions
What is the difference between SRT and VTT?
SRT (SubRip) is the oldest and most widely supported subtitle format - a plain numbered list of cues with comma-separated milliseconds (00:00:01,000). WebVTT (.vtt) is the format used by the HTML5 <track> element and most web video players. It uses periods for milliseconds (00:00:01.000), starts with a 'WEBVTT' header line, and supports styling and positioning cues that SRT cannot.
Why do I need to convert SRT to VTT?
Browsers will not load .srt files through the HTML5 <track> tag - they only accept WebVTT. So if you are adding captions to a video on a website, in a video player like Video.js or Plyr, or uploading to a platform that expects WebVTT, you need a .vtt file. Converting also fixes the comma/period timestamp difference that breaks playback.
Does converting change the subtitle text or timing?
No. FileHop keeps every line of text, every line break, and every timestamp exactly as it was - it only reformats the timecodes from SRT style (comma) to WebVTT style (period) and adds the WEBVTT header. The cue numbers from the SRT file are preserved as optional cue identifiers.
Can I convert a whole folder of SRT files at once?
Not in FileHop today — it converts subtitles one file at a time, writing each .vtt next to its source. For a large backlog you can use Subtitle Edit's Tools → Batch convert on Windows, or an ffmpeg shell loop (for f in *.srt; do ffmpeg -i "$f" "${f%.srt}.vtt"; done). For a handful of files, FileHop's one-at-a-time conversion is quick and keeps everything offline.
What encoding do the output files use?
FileHop writes UTF-8 .vtt files, which is what WebVTT requires and what every modern browser expects. If your source SRT was saved in a legacy encoding (Windows-1252, Latin-1, etc.), FileHop reads it correctly and writes clean UTF-8 so accented characters and non-Latin scripts display properly.
Does it handle styling tags inside subtitles?
Basic inline tags like <i>, <b>, and <u> that appear in SRT files are valid in WebVTT too, so they are carried over as-is. WebVTT-specific cue settings (position, alignment, line) are not in SRT files, so they are not added - the output is a clean, minimal WebVTT file you can style further if you want.
How does this compare to online SRT to VTT converters?
Online converters require uploading your subtitle file - which may contain unreleased dialogue, names, or other sensitive content - to a third-party server. FileHop runs entirely on your computer: nothing is uploaded, there are no file size limits, and it works without an internet connection.
Is this really free?
Yes. Completely free and unlimited - no trial, no watermarks on the output, no usage limits, no account or credit card required.
You might also need:
Learn More
Comparisons and alternatives for subtitle workflows