subliminal | 电影字幕下载神器
3 min read
subliminal 是一个基于 Python 的强大的命令行字幕搜索和下载工具。
最先知道 subliminal 是因为 MPV 播放器。配合插件 find_subtitles.lua 使用,在载入视频的同时搜索并下载中文字幕,简直天衣无缝。不过有的视频的文件名不是那么标准的话,就不一定能匹配得到合适的字幕。解决方法除了改文件名以外,还可以用 subliminal 手动搜索。
subliminal 使用多个字幕网站做为数据源,包括世界上最大的开放式字幕库 opensubtitles
{{< spoiler >}}不幸的是,有几个字幕站被墙了,比如 podnapisi, legendastv, shooter…{{< /spoiler >}}
GitHub 地址:https://github.com/Diaoul/subliminal
依赖🔗
- python2
安装🔗
首先安装 python2
和 pip
然后在终端中输入:
pip install subliminal
使用🔗
在终端中输入:
subliminal download -l zh [电影名称]
例如,如果要下载「低俗小说」的字幕:
subliminal download -l zh Pulp.Fiction.1994.720p.BluRay.DTS.x264-ESiR
部分字幕文件:
2
00:00:14,480 --> 00:00:18,850
柔軟潮濕的物體
3
00:00:18,980 --> 00:00:24,610
低級趣味、印刷簡陋的書刊
4
00:00:27,620 --> 00:00:31,590
算了 太冒險了 我不幹
5
00:00:31,590 --> 00:00:34,080
你每次都這樣說
6
00:00:34,460 --> 00:00:36,890
太危險了…我不幹了…
7
00:00:37,060 --> 00:00:39,530
我哪一次說錯?
居然是繁体,不过我一般遇到的都是简体中文的,而且繁体也不是不能看🤔
命令中的 -l
指定下载的字幕语言,例如要下载英语字幕:
subliminal download -l cn Pulp.Fiction.1994.720p.BluRay.DTS.x264-ESiR
脚本🔗
除了手动输入命令行外,还可以使用脚本 Python 脚本。例如下面这个脚本就可以自动下载目录中视频文件对应的字幕:
from datetime import timedelta
from babelfish import Language
from subliminal import download_best_subtitles, region, save_subtitles, scan_videos
# configure the cache
region.configure('dogpile.cache.dbm', arguments={'filename': 'cachefile.dbm'})
# scan for videos newer than 2 weeks and their existing subtitles in a folder
videos = scan_videos('/video/folder', age=timedelta(weeks=2))
# download best subtitles
subtitles = download_best_subtitles(videos, {Language('eng'), Language('fra')})
# save them to disk, next to the video
for v in videos:
save_subtitles(v, subtitles[v])
还有配合 MPV / GNOME MPV 播放器使用的脚本:find_subtitles.lua 关于 GNOME MPV 播放器
需要注意的是 find_subtitles.lua 默认下载的是英文字幕,下载中午字幕需要在脚本中将 38 行的 en
替换换成 zh
。如果你觉得麻烦的话,可以使用我修改过的版本。
Previous article
Next article