Manatee

How to convert ASS or SSA subtitles to SRT on a Mac

Drop the .ass or .ssa file into Manatee, choose SRT, and click Convert; the timing and dialogue come through, and the styling is stripped. If you have ffmpeg installed, ffmpeg -i subs.ass subs.srt does the same in Terminal. Either way, know what you are giving up: SRT cannot hold fonts, colors, positions, or animated effects, so a heavily styled anime or karaoke track becomes plain text at the bottom of the screen.

What an ASS file contains

SubStation Alpha (SSA) and its successor Advanced SubStation Alpha (ASS) are subtitle formats built for typesetting. Open one in TextEdit and you will see three sections:

[Script Info]
Title: Episode 4
PlayResX: 1920
PlayResY: 1080

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, ...
Style: Default,Open Sans,48,&H00FFFFFF,...
Style: Sign,Impact,60,&H0000A5FF,...

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:01:04.25,0:01:07.90,Default,,0,0,0,,Don't touch that.
Dialogue: 0,0:01:05.00,0:01:09.00,Sign,,0,0,0,,{\pos(960,200)\fad(300,300)}KEEP OUT

Each Dialogue line carries a start and end time in h:mm:ss.cc (hundredths of a second), a named style, and the text. The text can include override tags in braces: {\i1} for italic, {\b1} for bold, {\pos(x,y)} for position, {\c&H...&} for color, {\fad} for fades, {\k} for karaoke timing, and many more. Line breaks are written as \N.

SRT, by contrast, is a numbered list of cues with hh:mm:ss,mmm timestamps and text that may contain <i>, <b>, and <u>. That is the whole format.

What survives and what does not

A conversion to SRT keeps:

  • Start and end times, converted from hundredths to milliseconds (0:01:04.25 becomes 00:01:04,250).
  • The dialogue text, with \N turned into a real line break.
  • Italic and bold, usually translated from {\i1}...{\i0} to <i>...</i> and likewise for bold. Some tools also carry underline.

It drops:

  • Fonts, sizes, and colors defined in the styles section or with override tags.
  • Positions (\pos, \an, margins). Every cue lands at the bottom center, wherever the player puts SRT by default.
  • Fades, movement, rotation, scaling, blur, and every other animation.
  • Karaoke timing, so each line appears whole rather than syllable by syllable.
  • Layers. ASS lets cues overlap on separate layers; SRT players generally draw overlapping cues stacked, or show only one.
  • Comment lines and the script metadata.

This is not a shortcoming of any particular converter. SRT has no place to store this information. If a sign that was carefully placed over a door in the video now appears at the bottom of the screen next to the dialogue, that is the expected result.

Convert with Manatee

Manatee accepts .ass and .ssa as input (along with .srt, .vtt, .sub, and .sbv) and writes SRT. It runs on macOS 12 Monterey or later, on Apple silicon and Intel, and nothing leaves your Mac.

  1. Open Manatee and choose Convert.
  2. Drop the .ass or .ssa file into the window. You can drop a folder of them at once.
  3. Choose SRT as the target.
  4. Click Convert. The .srt is written alongside the original, which stays untouched.

Manatee’s subtitle handling comes from the ffmpeg engine bundled inside the app, so the results match the command-line method below: timing converted, \N honored, italic and bold kept, everything else stripped to plain text. It does not provide an editor. It will not let you choose which styles to keep, merge overlapping lines, shift timing to match a different cut of the video, or pick one of several subtitle tracks out of a video container (see below). It converts the subtitle file you give it.

Convert with ffmpeg in Terminal

If you have ffmpeg installed (it is not included with macOS), the command is:

ffmpeg -i episode.ass episode.srt

For a folder:

for f in *.ass; do ffmpeg -i "$f" "${f%.ass}.srt"; done

ffmpeg converts the timestamps, renumbers the cues in time order, and translates basic formatting tags to SRT’s HTML-style tags. Override tags it cannot express are removed from the text.

If the subtitles are inside an MKV

ASS subtitles are most often found embedded in MKV files rather than as loose files. The MKV plays on the Mac with the styling intact in players that support ASS, but when you convert the MKV to MP4 or load it on a TV, the styled track is usually dropped or rejected, and an SRT is what you need.

Manatee does not extract subtitle tracks from a video container. You need a tool that can demux the MKV to get the .ass file out, and ffmpeg is the usual one:

ffmpeg -i episode.mkv -map 0:s:0 episode.srt

That pulls the first subtitle track and converts it to SRT in one step. To see which tracks exist and choose a different one, run ffmpeg -i episode.mkv with no output and read the stream list; 0:s:1 is the second subtitle track, and so on.

Checking the result

Load the .srt in a media player alongside the video and check a few lines.

Text shows braces like {\an8}. The converter left a tag it did not understand. Open the SRT in TextEdit and use Find and Replace to delete the leftover tags.

Lines appear out of order or overlap. ASS files often list signs and dialogue in separate blocks rather than in time order. A good converter sorts by start time; if yours did not, a subtitle editor’s sort function fixes it.

Characters look like gibberish. The ASS file was saved in a legacy encoding and the SRT was read as UTF-8, or vice versa. Reopen the SRT in TextEdit, choose File > Save with the encoding set to UTF-8, and try again.

Everything is a few seconds off. The subtitle was timed to a different release of the video. Shifting is an editing job; the conversion itself is not the cause.

For a subtitle file that came from the web instead, see how to convert VTT subtitles to SRT.

Questions

Can I keep the colors by using font tags in the SRT?

Some players honor <font color="#RRGGBB"> in SRT, and a few converters emit it. It is not part of any standard, and many devices ignore or display it literally. If color is essential, keep the ASS and use a player that supports it.

Is SSA converted the same way as ASS?

Yes. SSA is the older version of the same format with fewer tags. Manatee and ffmpeg treat both identically.

Will a converted SRT work on my TV or in a video editor?

That is the main reason to convert. SRT is the most widely accepted subtitle format there is. Keep the file as UTF-8 and give it the same name as the video, and most players will pick it up automatically.

Can Manatee convert SRT back to ASS?

No. SRT is Manatee’s only subtitle output. For the reverse direction you need a subtitle editor.