Convert ASS to VTT programmatically with one HTTP request. The ASS to VTT API turns styled ASS/SSA subtitles into WebVTT — the format the browser's <video> element renders natively. If your player or platform needs WebVTT but your captions are ASS, this is the conversion you want.
The converter keeps the dialogue and timing, converts what it can to WebVTT cue settings, and drops ASS-only constructs (fonts, colors, drawing commands). One credit per conversion, 100 free credits to start.
Why convert ASS to VTT with an API
- Browser-native: WebVTT plays in HTML5
<video>without plugins. - Streaming: WebVTT is the format most platforms ingest.
- Automate: hand styled captions to a browser app in one call.
Convert with cURL
curl -X POST https://api.example.com/api/v1/convert \
-H "Authorization: Bearer your_api_key" \
-F "[email protected]" \
-F "from=ass" \
-F "to=vtt" \
-o movie.vtt
Compact example — Node.js
const fs = require("node:fs");
(async () => {
const form = new FormData();
form.append("file", new Blob([fs.readFileSync("movie.ass")]), "movie.ass");
form.append("from", "ass");
form.append("to", "vtt");
const res = await fetch("https://api.example.com/api/v1/convert", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.SUBTOVTT_API_KEY}` },
body: form,
});
if (!res.ok) throw new Error(await res.text());
fs.writeFileSync("movie.vtt", Buffer.from(await res.arrayBuffer()));
})();
Full examples by language
- Convert SRT to VTT with Python
- Convert SRT to VTT with Node.js
- Convert SRT to VTT with cURL
- Convert SRT to VTT with PHP
- Convert SRT to VTT in the browser
Format notes
| Topic | Detail |
|---|---|
| Output | WebVTT (.vtt), UTF-8 |
| Header | Adds the WEBVTT declaration line |
| Timestamps | Same timing, converted to WebVTT syntax |
| Styling | ASS-only fonts/colors dropped; cue settings kept where possible |
| Usage | HTML5 video, streaming platforms |
Note: for exact visual styling (fonts, colors, positioning), keep ASS. For broad player compatibility, WebVTT is the safer target.
FAQ
What ASS styling survives the conversion? Dialogue and timing always carry over. WebVTT supports a subset of positioning via cue settings; fonts, colors, and drawing commands do not translate.
Which should I target — ASS or VTT? Use VTT for anything rendered in a browser or streaming platform; use ASS when you need precise styling and the player supports it.