[Python] ASS 字幕批量转 SRT – asstosrt2.py

#UPDATE120423: 查看新版。本文所述版本已不再更新。
#UPDATA111218:
不想看以下大堆文字说明,请直接猛戳此处使用在线版本直接批量转换

电视、手机 都不支持 ASS 字幕 ,之前用 SrtEdit 转。
但后来遇到个字幕组,把 OP&ED 的字幕放在最前面,字幕顺序颠倒了,手机就不认了…
于是写了这个 Python 脚本

为了使用方便,只需要将ass文件全部选中,拖到 asstosrt2.py 上就好了
#UPDATE110903: 如果无法拖拽,可直接运行,将自动转换同目录下所有.ass文件。
再没有其他操作了…
如果没有错误,转换完窗口会直接关闭,在ass文件同目录下会生成srt文件

当然你需要先安装 Python 2.x 才行

下载 asstosrt2.py:
最新: GitHub | 历史:  SkyDrive | Google Docs

下载 Python 2.7:
Python.org


#UPDATA110903: 请确保 atslib.zip 与 asstosrt2.py 在同一目录下。

功能特点:

× 默认输出srt文件编码为 UTF-16 (Unicode / UCS-2 Little Endian)
    我电视手机刚好都支持这个编码
× 自动删除 {} 内的特效代码
    srt 不支持嘛
× 默认对字幕按时间进行重新排序
    我手机只要顺序一乱就罢工了,电视还没试过
× 默认删除带过渡特效的字幕
    例如顶部滚动显示“仅供研究,请在24小时内删除……”等,容易覆盖对白字幕
× 繁简体转换(默认禁用)
调用了部分维基百科的翻译规则,使用了部分 pyswim 项目代码
× 只显示第一行字幕(默认禁用)
    一些双语字幕将中文放置在第一行,启用后可简单删除 \N  后的内容

由于比较懒 🙂 ,如需修改默认设置,请直接编辑代码 48~52 行。

程序很简单,或者说很简陋,本来就是自己方便着用的东西嘛…200行..
Python 2.7, Windows 7 下调试无误,GPLv3
初学 Python 没几天,糟糕的代码,见笑了
P.s 不要吐槽排序部分代码  -_-||

#UPDATE 120306:
(Ver 0.4.6) 支持换行显示

#UPDATE 110923:
(Ver 0.4.5) 解决某些设备(如某些三星电视)完全无法识别字幕的问题。

#UPDATE 110903:
(Ver 0.4.4) 忽略文件编码错误,解决少量字幕转换失败的问题。
(Ver 0.4.3) 非拖拽模式增加转换.ssa文件。
(Ver 0.4.2) 增加繁简体转换功能;
直接运行将转换通目录下所有.ass文件。

#UPDATE 110723:
(Ver 0.3.2) 自动识别ASS文件编码,解决无法转换非 UTF-8 / ASCII 文件的问题;
增加了一点转换失败判断;加了个简短的说明文件并打包。

[Python] ASS 字幕批量转 SRT – asstosrt2.py》上有19条评论

  1. Snacorpio1119

    超好用的程式,非常感謝
    想請問一下,如果想要簡體轉繁體的話
    第52行要怎麼改? 沒有寫過python的經驗

    回复
    1. Null

      你用的什么系统?确认Python装的是2.7版,字幕文件以.ass或.ssa结尾。http://is.gd/hjrRN7 下载最新版解压后,和字幕放在同一个文件夹内。 或者先用在线版… 若是个别字幕不行,可以发给我看下… [email protected]

      回复
  2. hp

    非常感谢您,这个页面工具非常有用,帮了不少忙。收藏了。不过完全非专业认识,不知道什么是python,也不会用py文件,只会用网页版……不过还是很有用很感谢。(如果有个exe或者dmg什么的更好啦!)

    回复
  3. 無名小卒

    抱歉我用 asstosrt2 v0.4.5.7把 asstosrt2.py 裡面的 translate = None): 改成 translate = ‘zh-hant’): 儲存後,把ass轉換成srt,重覆試了4遍,還是簡體

    回复
    1. ASStoSRT愛用者

      我也遇到一樣的問題,後來看了作者的Github有一段說明如下:
      Convert to Traditional Chinese (Using OpenCC):
      # pip install pyopencc
      $ asstosrt -c zhs2zht.ini

      於是試著開啟命令提示字元並移動至asstosrt2的目錄後執行,
      asstosrt2.py -c 要轉的檔案名稱(需要存在於該目錄)
      轉出來的srt就是繁體中文了,如果你試了不行,請先去裝OpenCC的套件.

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注