SRT to VTT Converter
Upload Your SRT Files
Drag & drop .srt files here or click to browse
Supports SRT format only · Max 10 files · 20 MB each
Paste SRT subtitle data with sequence numbers and timestamps
Your Converted VTT Files
SRT (SubRip Subtitle) is the most common subtitle format, built from a simple numbered list of timestamps and text. VTT (WebVTT, or Web Video Text Tracks) is the subtitle format the web itself is built around — it's what HTML5 video players, browsers, and most modern streaming platforms actually expect. If you have an SRT file and you're trying to add captions to a website, an HTML5 <video> element, or a web app, you need it in VTT format first, because SRT was never designed for the browser.
That's the whole reason this tool exists: to take the SRT file you already have and turn it into a clean, standards-correct VTT file in seconds, without installing software or creating an account.
What you get:
- No signup, no account, no email required
- Fast conversion, even for longer subtitle files
- Convert up to 10 files at once (20MB each)
- Clean WebVTT output with subtitle timing preserved exactly
- Simple drag-and-drop interface — no learning curve
- Uploaded files are automatically deleted from our servers within 1 hour
Your file is uploaded only to perform the conversion, is never shared, and is automatically and permanently deleted from our servers within 1 hour.
How It Works
Converting SRT to VTT takes three steps and no technical knowledge.
- Add your SRT file (or files). Drag and drop your
.srtfile into the upload area, or click to browse and select it from your device. You can add up to 10 files at once, each up to 20MB. - The file is converted. Your SRT file is uploaded and converted into a clean, correctly formatted WebVTT file — the required
WEBVTTheader is added and every timestamp is rewritten in VTT's format. Conversion is fast, and the uploaded file is automatically deleted from our servers within 1 hour. - Download your VTT file. Once conversion finishes, download your new
.vttfile (or all of them, if you converted multiple) and use it directly in your website, video player, or course platform.
That's it — no format settings to configure, no export dialogs, no account wall between you and your file.
Why Choose AllFileTools
Every feature below is a real, current capability of this tool — not a marketing claim.
Fast, straightforward conversion Your SRT file is uploaded and converted right away — there's no processing queue, no waiting for a batch job, and no complicated export settings between you and your finished VTT file.
No signup required There's no account to create, no email to verify, and no login wall. You land on the page, convert your file, and leave. This matters if you just need one file converted quickly and don't want to become "a user" of yet another platform.
Free to use Conversion doesn't require payment, a trial period, or a credit card. It's a straightforward utility, not a funnel toward a paid plan.
Supports multiple files If you're converting subtitles for an entire course, a video series, or multiple language tracks, you don't have to repeat the process one file at a time. Upload up to 10 SRT files in a single batch.
Fast conversion Uploading and converting an SRT file takes seconds, not minutes — there's no manual processing queue or delay between upload and download.
Clean WebVTT output The output file is a properly formatted .vtt file with the correct WEBVTT header and standards-compliant timestamp syntax, ready to use in an HTML5 <track> element or any player that accepts WebVTT.
Preserves subtitle timing Every cue's start and end time is carried over precisely from your original SRT file. Converting formats shouldn't mean re-syncing your subtitles — this tool doesn't touch your timing, only the format it's written in.
Simple drag-and-drop interface There's one clear action on the page: drop your file, get your file. No settings menus to understand before you can do the one thing you came to do.
Maximum 10 files, 20MB per file These are the tool's real limits, stated plainly so there are no surprises. For context, a 20MB SRT file is enormous for a subtitle track — a full-length feature film's subtitles in SRT format are typically well under 200KB, so this limit comfortably covers essentially any real-world subtitle file, including unusually long or heavily formatted ones.
SRT vs VTT: Complete Comparison
Short answer: SRT is a simple, universally supported subtitle format used mainly by media players and video editing software. VTT (WebVTT) is the subtitle format designed for the web — it's what browsers, HTML5 video, and most modern streaming and web-based platforms require or prefer.
| Attribute | SRT (SubRip) | VTT (WebVTT) |
|---|---|---|
| File extension | .srt |
.vtt |
| Purpose | General-purpose subtitle format for media players and video editors | Web-native subtitle format for HTML5 video and browser-based playback |
| Browser support | Not natively supported by browsers | Natively supported by every modern browser |
HTML5 <track> compatibility |
Not supported directly — must be converted to VTT first | Fully supported; it's the format the <track> element expects |
| Timestamp format | 00:00:20,000 (comma separates milliseconds) |
00:00:20.000 (period separates milliseconds) |
| Styling support | Minimal — basic <b>, <i>, <u> tags only |
Supports CSS-based styling, cue classes, and text positioning |
| Cue settings (position/alignment) | Not supported | Supported — cues can be positioned, aligned, and sized on screen |
| Metadata / header | No file header | Requires a WEBVTT header as the first line of the file |
| Comments in file | Not supported | Supported using NOTE blocks |
| Accessibility (screen readers, captions APIs) | Limited — depends entirely on the media player's interpretation | Strong — designed with web accessibility standards in mind, works with browser accessibility tooling |
| Best use cases | Desktop video players (VLC), video editing software, downloadable movie/TV subtitles | Websites, HTML5 video, web apps, e-learning platforms, browser-based video players |
| Streaming platform compatibility | Common as a source/upload format on some platforms, which convert it internally | Directly used by many web-based streaming and playback systems without conversion |
| YouTube compatibility | Accepted as an upload format | Also accepted as an upload format |
| Editing difficulty | Very easy — plain text, minimal syntax rules | Easy, but slightly stricter — requires the header and correct timestamp punctuation |
if your subtitles are staying inside a desktop media player or video editor, SRT works fine. The moment your subtitles need to live on a website or inside an HTML5 video player, you need VTT — browsers don't read SRT natively, and that gap is exactly what this converter closes.
When Should You Convert SRT to VTT?
You need a VTT file, not an SRT file, in each of these situations:
HTML5 video. The <track> element used to attach captions or subtitles to an HTML5 <video> tag only accepts WebVTT. An SRT file placed in a <track src="..."> attribute will not display captions — the browser won't parse it.
Websites. Any time you're embedding a video with captions directly on a web page — a landing page video, a product demo, a portfolio piece — the caption file needs to be VTT for the browser's native player to render it.
Online courses and e-learning platforms. Many course platforms and LMS tools that support self-hosted or embedded video expect WebVTT for accessibility captions, since they're built around HTML5 video under the hood.
Accessibility compliance. If you're adding captions to meet accessibility requirements (for example, to support screen reader users or comply with WCAG-related guidance), VTT is the format that integrates with browser accessibility APIs designed for the web.
Web applications. Custom video players built into web apps — dashboards, internal training tools, embedded video features — almost always render captions through the browser's native <track> support, which means VTT.
Streaming platforms. Many web-based streaming and video-hosting systems either require VTT directly or handle it more predictably than SRT when captions are served over the web.
Modern browsers. Chrome, Firefox, Safari, and Edge all support WebVTT natively for video captions. None of them parse raw SRT files as captions without an intermediate conversion step — this converter is that step.
Browser-based video players. Any JavaScript video player library running in the browser (rather than a native desktop app) that supports captions is built around the WebVTT spec, not SRT.
If none of the above applies — you're just watching a movie file locally in VLC, for example — you can usually keep using SRT as-is. Conversion becomes necessary the moment your video and its subtitles need to work inside a browser.
Common Problems During Conversion (and How to Fix Them)
Most SRT-to-VTT conversion issues come from small formatting problems in the original SRT file. Here's what causes them and how a proper converter — including this one — handles them.
Invalid timestamps. SRT timestamps use commas (00:01:12,500), while VTT requires periods (00:01:12.500). If a converter does a naive find-and-replace instead of properly parsing the timecodes, malformed or inconsistent SRT files can produce broken output. A correct converter parses each timestamp structurally and rebuilds it in valid VTT syntax rather than blindly swapping characters.
Missing UTF-8 encoding. SRT files created on older software or in certain regions are sometimes saved in a legacy encoding (like Windows-1252) instead of UTF-8. If special characters (accents, non-Latin scripts, curly quotes) look garbled after conversion, the source file's encoding is usually the cause. Re-saving the original SRT as UTF-8 before conversion resolves this.
Missing WEBVTT header. A valid VTT file must begin with the literal text WEBVTT on the first line. This is one of the most common reasons a converted or hand-edited VTT file fails to load in a browser — the header is easy to forget if you're editing manually, but it's non-negotiable for the file to be recognized as WebVTT.
Extra spaces or blank lines. Irregular blank-line spacing between cues (more than one blank line, or trailing whitespace) can cause some parsers to misread where one subtitle cue ends and the next begins. Clean, consistent single-blank-line spacing between cues avoids this.
Broken formatting tags. SRT's basic <b>, <i>, and <u> tags don't always translate cleanly if a tag is left unclosed in the source file. An unclosed tag can cause all subsequent text in the file to inherit unintended formatting. Checking that every opening tag has a matching closing tag before conversion prevents this.
Empty subtitle blocks. Some SRT files, especially ones exported from automatic transcription or captioning tools, contain leftover blocks with a timestamp but no actual text. These can create empty cues in the VTT output. Reviewing the source file for blocks with no caption text and removing them keeps the final file clean.
Practical takeaway: the fastest way to avoid all of the above is to start from a well-formed SRT file — sequentially numbered, UTF-8 encoded, consistent blank-line spacing, and properly closed formatting tags — and let a dedicated converter (rather than a manual text-editor find-and-replace) handle the timestamp and header conversion.
Frequently Asked Questions
What is an SRT file?
An SRT file (SubRip Subtitle) is a plain-text subtitle format that stores captions as a numbered sequence of timestamps and text. It's one of the oldest and most widely supported subtitle formats, used by media players like VLC, video editing software, and most downloadable movie or TV subtitles.
What is a VTT file?
A VTT file (WebVTT, or Web Video Text Tracks) is a subtitle format built specifically for the web. It's the format browsers and HTML5 video use natively to display captions, and it supports additional features like cue positioning and basic styling that SRT doesn't.
Why can't I just use my SRT file directly on my website?
Browsers don't parse SRT as a caption format for HTML5 video. The <track> element that attaches captions to a <video> tag only recognizes WebVTT files. An SRT file needs to be converted to VTT before it will display as captions on a web page.
Are my subtitle files uploaded to a server?
Yes. Your SRT file is uploaded so it can be converted, and the uploaded file is automatically and permanently deleted from our servers within 1 hour. It's not shared, published, or kept beyond that window.
How long are my uploaded files kept?
Uploaded files are automatically and permanently deleted from our servers within 1 hour of upload, whether or not you download the converted result.
How many files can I convert at once?
You can convert up to 10 SRT files in a single batch.
Is there a file size limit?
Yes, each file can be up to 20MB. That's far larger than a typical subtitle file needs to be — even feature-length movie subtitles are usually well under 1MB — so this comfortably covers virtually any real subtitle file you'll encounter.
Will converting SRT to VTT change my subtitle timing?
No. Conversion only changes the file's format and timestamp punctuation (comma to period). The actual start and end times of every subtitle cue are preserved exactly as they were in the original SRT file.
Will converting SRT to VTT affect the text of my subtitles?
No. The subtitle text itself is carried over unchanged. Only the surrounding format — the header, timestamp syntax, and file structure — is rewritten to meet the VTT standard.
What's the difference between the timestamp formats in SRT and VTT?
SRT uses a comma to separate seconds from milliseconds (00:00:20,000). VTT uses a period instead (00:00:20.000). This small but strict difference is one of the main reasons SRT files fail validation when used directly as VTT.
Why does my VTT file need to start with "WEBVTT"?
The WebVTT specification requires the literal text WEBVTT as the first line of the file. Without it, browsers and video players won't recognize the file as a valid WebVTT track, even if the rest of the content is correctly formatted.
Can I use a converted VTT file on YouTube?
Yes. YouTube accepts VTT as a supported caption upload format, alongside SRT.
Can I use a converted VTT file with an HTML5 video on my own website?
Yes — this is the primary use case VTT was designed for. You attach it using a <track> element inside your <video> tag (see the Developer Section below for a working example).
Does VTT support styling that SRT doesn't?
Yes. VTT supports cue positioning, alignment, and CSS-based styling of caption text, along with NOTE comments in the file. SRT only supports basic <b>, <i>, and <u> formatting tags.
Why is my converted VTT file not showing captions in my browser?
This is almost always one of a few things: the WEBVTT header is missing, the <track> element's src path is wrong, the kind attribute isn't set to subtitles or captions, or the video file and the track aren't on the same origin (a CORS issue). Checking the browser console for a loading error on the track file is the fastest way to diagnose it.
Is SRT to VTT conversion losy?
No. Because SRT and VTT are both plain-text, cue-based subtitle formats, converting between them doesn't involve any compression or data loss the way, say, converting a lossy audio format would. Timing and text are preserved exactly; only the container syntax changes.
Developer Section
What WebVTT is, technically: WebVTT is a W3C-specified text track format designed for displaying timed text — subtitles, captions, and chapter markers — alongside HTML5 media elements. It's plain text, human-readable, and structured around cues: a start time, an end time, and the text to display during that window.
Why browsers require it: The HTML5 <track> element, which is the standard way to attach captions to a <video> element, was built against the WebVTT specification. Browsers implement a native VTT parser as part of their media engine, but they don't ship a native SRT parser — so SRT files aren't recognized by <track> even though the two formats are conceptually similar.
The HTML5 <track> element: <track> is a child element of <video> (or <audio>) that points the browser to a caption, subtitle, description, chapter, or metadata file. Its key attributes are:
kind— the type of track (subtitles,captions,descriptions,chapters, ormetadata)src— the path to the.vttfilesrclang— the language code of the track (e.g.,en,es,fr)label— a human-readable name shown in the player's caption menudefault— marks a track as the default active one
Working HTML example:
html
<video controls width="640">
<source src="my-video.mp4" type="video/mp4">
<track
kind="subtitles"
src="captions.vtt"
srclang="en"
label="English"
default>
Your browser does not support the video tag.
</video>
Once captions.vtt (converted from your original SRT file) is placed at the correct path relative to your HTML file, the browser will automatically display a CC/captions toggle in its native video controls.
A minimal valid VTT file structure:
WEBVTT
00:00:01.000 --> 00:00:04.000
This is the first subtitle line.
00:00:05.000 --> 00:00:08.000
This is the second subtitle line.
Note the required WEBVTT header, the period-based timestamps, and a single blank line separating each cue.
Browser compatibility: WebVTT via the <track> element is supported natively in all current versions of Chrome, Firefox, Safari, and Edge, on both desktop and mobile. This is one of the more consistently implemented parts of the HTML5 media spec — there's no need for a polyfill in modern browsers for basic subtitle display.
A note for developers working cross-origin: if your video and .vtt file are served from different origins/domains, you'll need appropriate CORS headers (crossorigin attribute on <track> and correct Access-Control-Allow-Origin response headers) or the browser will silently fail to load the track.
Privacy & Security
Here's exactly what happens to your file when you use this tool, described plainly:
Your file is uploaded to convert it. The SRT file you select is uploaded to our servers so it can be converted into WebVTT format. This is what makes the conversion possible — the file needs to reach our system to be processed.
Your file is automatically deleted within 1 hour. Once uploaded, your file — and the converted VTT file generated from it — is automatically and permanently deleted from our servers within 1 hour, regardless of whether you've downloaded the result. There's no manual step required on your part for this to happen.
Your file isn't shared or used for anything else. The upload exists solely to perform the conversion you requested. It isn't published, shared with third parties, or repurposed.
No account means no data tied to an identity. Since there's no signup or login, there's no user account, email address, or profile that your uploaded or converted files are linked to.
What this means practically: because deletion happens automatically within an hour, there's no lingering copy of your subtitle file sitting on our servers indefinitely. If you're converting subtitles for sensitive or unreleased content, download your converted file promptly after conversion — once the 1-hour window passes, the file is gone from our end for good.
SRT to VTT Best Practices & Quality Checklist
A few habits make subtitle conversion and subtitle quality noticeably more reliable, whether you're doing this once or as a regular part of your workflow.
Before you convert:
- Confirm your SRT file is saved in UTF-8 encoding, especially if your subtitles include accented characters or non-Latin scripts.
- Check that sequence numbers are consistent and that every cue has a start and end timestamp.
- Remove any empty cues (a timestamp with no text) left behind by automatic transcription tools.
- Make sure formatting tags like
<i>and<b>are properly closed.
After you convert:
- Open the
.vttfile in a plain text editor and confirm the first line reads exactlyWEBVTT. - Spot-check a few timestamps to confirm they use periods, not commas.
- Test the file in an actual
<video>element with a<track>tag rather than assuming it will work — small path orsrclangmistakes in your HTML are a more common cause of "captions not showing" than the VTT file itself.
General subtitle quality tips (format-independent):
- Keep individual caption lines short — long unbroken lines are harder to read at a glance and get cut off on smaller screens.
- Avoid overlapping cue timestamps; a new cue shouldn't start before the previous one ends unless your player explicitly supports simultaneous cues.
- Match caption reading speed to natural reading pace — text that's on screen for less than a second or two is often too fast to read.
Professional workflow tip: if you regularly deliver subtitles in both formats — SRT for editors/players and VTT for the web — keep your SRT file as the source of truth and regenerate the VTT version whenever the SRT is updated, rather than hand-editing both files separately. This avoids the two versions drifting out of sync over time.
Why captions and accessibility matter: captions aren't just a convenience feature. They make video content usable for deaf and hard-of-hearing viewers, support viewers watching in sound-off environments, help non-native speakers follow along, and make video content indexable and searchable in ways raw audio isn't. Getting the subtitle format right — VTT for the web, specifically — is a small technical step that directly affects whether that accessibility actually works in practice.