Skip to main content

Parse ASS subtitle format tags markup.

Project description

ass_tag_parser

Build

A Python library for serialization and deserialization of ASS subtitle file format tags markup.

Not to confuse with parsing .ass files that can be manipulated with ass_parser.

Example:

from ass_tag_parser import parse_ass


result = parse_ass(
    r"{\an5\pos(175,460)\fnUtopia with Oldstyle figures\fs90\bord0\blur3"
    r"\1c&H131313&\t(0,1000,2,\1c&H131340&)\t(1000,2000,\1c&H1015B2&"
    r"\blur1.4)}Attack No. 1{NOTE:アタックNo.1}"
)
print(result)
print(result[2].meta)

Result:

[
    AssTagListOpening(),
    AssTagAlignment(alignment=5, legacy=False),
    AssTagPosition(x=175.0, y=460.0),
    AssTagFontName(name="Utopia with Oldstyle figures"),
    AssTagFontSize(size=90.0),
    AssTagBorder(size=0.0),
    AssTagBlurEdgesGauss(weight=3.0),
    AssTagColor(red=19, green=19, blue=19, target=1, short=False),
    AssTagAnimation(
        tags=[AssTagColor(red=64, green=19, blue=19, target=1, short=False)],
        time1=0.0,
        time2=1000.0,
        acceleration=2.0,
    ),
    AssTagAnimation(
        tags=[
            AssTagColor(red=178, green=21, blue=16, target=1, short=False),
            AssTagBlurEdgesGauss(weight=1.4),
        ],
        time1=1000.0,
        time2=2000.0,
        acceleration=None,
    ),
    AssTagListEnding(),
    AssText(text="Attack No. 1"),
    AssTagListOpening(),
    AssTagComment(text="NOTE:アタックNo.1"),
    AssTagListEnding(),
]
Meta(start=5, end=18, text="\\pos(175,460)")

Starting from version 2.2, drawing commands are parsed automatically.


Serializing the tree back

ASS tree: compose_ass. Note that you don't need to supply AssTagListOpening nor AssTagListEnding tags in the input item list – this function inserts them automatically.

Draw commands: compose_draw_commands.

Contributing

# Clone the repository:
git clone https://github.com/bubblesub/ass_tag_parser.git
cd ass_tag_parser

# Install to a local venv:
poetry install

# Install pre-commit hooks:
poetry run pre-commit install

# Enter the venv:
poetry shell

This project uses poetry for packaging, install instructions at poetry#installation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ass_tag_parser-2.4.1.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

ass_tag_parser-2.4.1-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file ass_tag_parser-2.4.1.tar.gz.

File metadata

  • Download URL: ass_tag_parser-2.4.1.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.4 Linux/5.16.12-arch1-1

File hashes

Hashes for ass_tag_parser-2.4.1.tar.gz
Algorithm Hash digest
SHA256 1f78b7f6f9f69e769d9fc87a977f0986534b65fa816c41016b80794c785102f7
MD5 2db15866e88d9ae328e7c2e6f8dea524
BLAKE2b-256 b75e8c1fd54d09efc82184600ca4167f218c337c23b2ce2ade42420ca002cd42

See more details on using hashes here.

File details

Details for the file ass_tag_parser-2.4.1-py3-none-any.whl.

File metadata

  • Download URL: ass_tag_parser-2.4.1-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.4 Linux/5.16.12-arch1-1

File hashes

Hashes for ass_tag_parser-2.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5cc3a5858c31fd781dad6e8d613f3212d8fd9a10d08356ba5797c2b8533ca439
MD5 35308ea47d30f4c9b88990a346b9371b
BLAKE2b-256 744233b7852ac6a9ec5fd31f96dd0360c3b23c9e6d34c0d8eb00d32fe319afba

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page