Convert ASS to SRT with the SubtoVTT API

Convert ASS/SSA subtitles to SRT programmatically. Handle styling and karaoke loss in one API call. Credits billed per conversion. v1 · stable

Convert ASS to SRT programmatically with one HTTP request. The ASS to SRT API strips the styling and positioning that ASS files carry and produces plain SRT text — the format virtually every tool can read. If a player or editor chokes on .ass, converting to SRT is the fix.

ASS stores rich formatting (fonts, colors, {\an} positioning, drawing commands). SRT supports none of it, so the conversion keeps the dialogue text and drops the styling. One credit per conversion, 100 free credits to start.

Why convert ASS to SRT with an API

  • Compatibility: SRT opens everywhere; ASS does not.
  • Cleanup: drop fonts, colors, and positions in one call.
  • Automate: convert subtitle libraries without opening an editor.

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=srt" \
  -o movie.srt

Compact example — PHP

<?php

$curl = curl_init('https://api.example.com/api/v1/convert');
$post = [
    'file' => new CURLFile('movie.ass', 'text/x-ssa', 'movie.ass'),
    'from' => 'ass',
    'to'   => 'srt',
];
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $post,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('SUBTOVTT_API_KEY')],
    CURLOPT_RETURNTRANSFER => true,
]);
$body = curl_exec($curl);
curl_close($curl);
file_put_contents('movie.srt', $body);

Full examples by language

Format notes

Topic Detail
Output SubRip (.srt)
Styling Fonts, colors, positions dropped
Overrides Inline {\...} overrides removed
Dialogue Text kept, timing preserved
Usage Widest editor and player compatibility

Tip: if the ASS file has sound effects in brackets ([music]), pass clean_sdh=1 to strip them during the same conversion.

FAQ

Is SSA the same as ASS? Close — SSA is the older specification that ASS extends. This API reads both .ass and .ssa content.

What about ASS positioning? Positioning ({\an...}) is dropped in SRT output. If you need to keep placement, convert to ASS or WebVTT instead.

Next

↑ Back to top