Skip to main content

An ass subtitle parsing library

Project description

easy ass

一个用于解析和操作ass字幕的python包

⚠️当前处于开发阶段,未经过严格测试

功能

✅ ScriptInfo、Styles、Events解析

✅ 大部分的覆写控制代码支持

✅ 字段类型,合法性检查

⬜ 绘图指令、方便的绘图支持(开发中)

⬜ C++内核实现 (计划)

安装

从 pip 中获取

pip install easyass

支持 python 3.7 及以上版本,没有额外的库依赖。

例子

from easyass import *  # 引入 easyass 包

# 库不提供直接读取文件的api,需要自行读写
with open(r'test/test.ass', 'r', encoding='utf8') as fp:  # 读一个 ass 文件
    ass_str = fp.read()

ass_obj = Ass()  # 创建一个 ass 实例
errs = ass_obj.parse(ass_str)  # 解析 ass 文本
print(ass.script_info.Title)  # 输出 title
ass_obj.script_info.Title = 'aabbcc'  # 修改 title

print(ass_obj.styles[0].Name)  # 获取第一条 styles 的名字
ass_obj.styles.append(StyleItem(  # 添加一个 style 并指定其部分字段
    Name='r2l',
    Fontname='Microsoft YaHei',
    Fontsize=30,
))

print(ass_obj.events[0].Start)  # 获取第一条事件的开始时间
ass_obj.events[0].Text = 'good'  # 修改第一条事件的文本
# 修改第一条事件的文本,并使用覆写代码
ass_obj.events[0].Text = Pos(1, 10) + 'good' + FontSize(size=30)
ass_obj.events[0].Text[0].x = 60  # 修改刚才添加的覆写代码中 Pos 的属性 x, 具体属性见 docstring
print(ass_obj.events[0].dump())  # 获取第一条事件的 ass 代码

lines, errs = ass_obj.dump()
with open(r'op.ass', 'w', encoding='utf8') as fp:  # 修改后的ass写到文件
    fp.write('\n'.join(lines))  # lines是一个字符串数组,包含每一行的内容

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

easyass-1.0.0b12.tar.gz (15.7 kB view hashes)

Uploaded Source

Built Distribution

easyass-1.0.0b12-py3-none-any.whl (18.4 kB view hashes)

Uploaded Python 3

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