What this does
SubStation Alpha is the format fansub groups and heavily styled releases use. Dialogue lives in an [Events] section, one Dialogue: line per cue, and the order of the fields on those lines is declared by a Format: line above them. Most editors, mobile players and upload forms cannot read any of that, so this converter rewrites the cues as SubRip.
How to use it
- Paste your
.assor.ssafile into the box, or drop it onto the page. - Dialogue lines are read in the order the file's own
Format:line declares — the parser never assumes a fixed column order, which is what breaks most converters on SSA v4.00 files. - Copy the result or download it as a
.srtfile.
Good to know
- Both
.ass(v4.00+) and.ssa(v4.00) are accepted. The SSA variant adds aMarked=0field to each Dialogue line, which is handled by reading theFormat:line rather than guessing. - A
Dialogue:line is split on commas only as far as the declared field count — the Text field is last and keeps any commas of its own. This is why naive converters cut dialogue off at the first comma in the sentence. - Comments (
Comment:lines),Picture:andSound:lines are not dialogue and are skipped. - Karaoke effects (
{\k},{\kf}) are timing data, not text, so they are removed rather than rendered. The result is a plain reading copy.
What survives the conversion, and what cannot
Timing is preserved exactly. ASS writes times as 0:00:01.00 — one digit for hours, two for centiseconds. SubRip wants milliseconds with three digits and a comma. The converter multiplies the centiseconds by ten, so a cue at 0:01:02.35 comes out as 00:01:02,350 and lands in exactly the same place on the timeline.
Italics and bold come across. ASS marks them with override blocks such as {\i1}, {\i0}, {\b1} and {\b0}, which SubRip does not understand. Those are translated into the SRT tags <i> and <b>, and {\r} closes whatever was open. Everything else inside an override block — fonts, colours, outlines, karaoke timing, vector drawings — is discarded, because SubRip has nowhere to put it.
Positioning is lost, and there is no way around that. ASS can place a line anywhere on the frame using {\pos()}, {\an8} or {\move()}. SubRip has no positioning at all. Sign translations that sit beside a speaker, or captions pushed to the top of the frame so they do not cover a face, will jump to the bottom centre. If a release depends on that layout, keep the ASS as the master file and treat the SRT as a delivery copy only.
Line breaks are normalised. ASS uses \N for a hard break and \n for a soft one; both become real line breaks, which is what SubRip expects. \h, a non-breaking space, becomes an ordinary space. Cue numbers are regenerated from 1 so the file opens in every editor.
Worked example
Input — .ass
[Script Info]
ScriptType: v4.00+
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:04.20,0:00:07.00,Default,,0,0,0,,{\i1}Music playing{\i0}\NSign on wall: EXIT
Output — .srt
1 00:00:01,000 --> 00:00:04,000 Hello there. 2 00:00:04,200 --> 00:00:07,000 <i>Music playing</i> Sign on wall: EXIT
Centiseconds became milliseconds, {\i1} became , and \N became a real line break. Nothing else about the cues changed.
FAQ
Does this upload my subtitle file anywhere?
Why did my sign translations end up at the bottom of the screen?
{\pos()} or {\an8}, and SubRip has no equivalent field to carry the coordinates. The text is kept; the placement is not.The output has no italics even though the original was italicised
{\i1} and {\b1} style overrides map to SRT tags. If a release styled italics through the [V4+ Styles] section instead of inline overrides, the styling lives in the style definition rather than the cue, and there is no inline marker to translate.Can I convert the other way, from SRT to ASS?
Dialogue: lines.Troubleshooting
- No dialogue lines foundThe file needs an
[Events]section, and that section needs aFormat:line namingStart,EndandText. A file where the header was stripped out, or where cues were saved without the events block, has nothing to convert. - Timestamps look wrong — everything is ten times too longThat is the signature of a file that was already converted from SRT by a tool that treated centiseconds as milliseconds. Re-export the original ASS and convert from that instead.
- The output is empty even though the file opens fine in a playerCheck the extension and the first line. Some releases ship MicroDVD (
{0}{25}text) or a plain script inside a file named.ass. Those have noDialogue:lines at all, so they need a different converter. - Styling beyond italics disappearedFonts, colours and outlines are stored in override blocks or in the
[V4+ Styles]section. SubRip carries only inline<i>,<b>and<u>, so everything else is dropped by design rather than by mistake. - Two languages came out stacked in one cueThat is how the source was written — one
Dialogue:line containing both languages separated by\N. Split it into two files if you need one language per track.
Related tools
SRT to VTT Converter
Convert .srt subtitle files to WebVTT (.vtt) for HTML5 video, right in your browser.
Clean Up AI-Generated Subtitles
Remove sound cues, HTML tags, speaker labels and duplicate cues from auto-generated captions.
Subtitle Timing Checker
Audit an SRT or VTT file for cues that are too fast, too short, too long or overlapping.