Tool/library to add ruby text to Advanced SubStation Alpha (.ass) subtitles using the same syntax as in Anki or the Migaku Anki plugins.
rubysubs is licensed under LGPLv3. See LICENSE for further detail.
Run the following to install:
pip install rubysubs
For binary releases refer to the releases page.
rubysubs <source subtitle> <output subtitle> [<tag parser> [arg0] [arg1] ...]
- Source subtilte: Path to source subtitle file
- Output subtilte: Path to output subtitle file
- Tag parser (optional):
- ruby (default): Ruby square bracket tags, no arguments
- ja: Migaku Japanese tag parser
- arg0: mode (furigana/kanji/kana, default: furigana)
- arg1: pitch highlighting (yes/no, default: yes)
- arg2: pitch shapes (yes/no, default: no)
- arg3: unknown word underlining (yes/no, default: yes)
- arg4: 1T word highlighting (yes/no, default: yes)
 
 
Examples:
rubysubs source.ass out.ass
rubysubs source_ja.ass out_ja_furigana_no_markings.ass ja furigana no no no no
rubysubs source_ja.ass out_ja_kana_all_markings.ass ja kana yes yes yes yes
Notes:
- Style info is pulled from the style called Default- ScaleXand- ScaleYare reset to 100
- Spacingand- Angleare reset to 0
- Italic,- Underlineand- Strikeoutare reset.- Boldis supported
- Alignmentis currently fixed to bottom-center with- MarginVbeing considered
 
- PlayResXand- PlayResYscript info tags should be set to allow screen postion calculations. Defaults to 1920x1080
- No ASS tags are supported
import sys
import rubysubs
from PyQt5.QtGui import QGuiApplication
# Required for QFontMetrics
qapp = QGuiApplication(sys.argv)
rubysubs.convert_sub_file('source.ass', 'out.ass', rubysubs.tag_parse_ruby.parse)
rubysubs.convert_sub_file('source_jp.ass', 'out_ja.ass', rubysubs.tag_parse_migaku_ja.parse)