换了TCL电视之后看片成了一件麻烦的事情,字幕无法自动下载在dock发现了一只自动匹配字幕的神器
以下作者的GayHub
安装
docker
docker create \
--name=subfinder \
-e PUID=1026 \
-e PGID=100 \
-e TZ=Asia/Shanghai \
-e TASK=2h \
-v /path/to/appdata/config:/config \
-v /path/to/libraries:/media \
superng6/subfinder
如果你是 Linux 和 macOS 用户,由于系统自带 Python,推荐使用下面的方法安装 subfinder:
pip install subfinder
安装完成之后,会在 Python 的 scripts 目录下添加一个叫做 subfinder 的可执行文件。
在 unix-like 系统中,scripts 目录一般是 /usr/local/bin,在 Windows 系统中,scripts 目录一般是 C:pythonscripts。在 Windows 系统中需要将 C:pythonscripts 加入到 PATH 中(一般安装 Python 时已经添加了)。
接下来你就可以在命令行中使用 subfinder 命令了。
为了方便没有安装 Python 的用户,这里也有已经打包好的可执行文件。戳这里下载。
更新
如果 subfinder 是使用 pip 安装的,那么使用 pip 更新,
pip install subfinder --upgrade
如果 subfinder 是下载的打包好的可执行文件,那么请重新下载最新的可执行文件并覆盖旧的文件。
使用方法
命令行
使用默认字幕查找器(shooter)查找单个视频的字幕:
subfinder /path/to/videofile
使用默认字幕查找器(shooter)查找目录下(递归所有子目录)所有视频的字幕:
subfinder /path/to/directory_contains_video
使用指定的字幕查找器查找字幕,例如 zimuku:
subfinder /path/to/videofile -m zimuku
同时使用多个字幕查找器查找字幕
subfinder /path/to/videofile -m shooter zimuku
当指定多个字幕查找器时,subfinder 会依次尝试每个字幕查找器去查找字幕,只要有一个字幕查找器返回字幕信息,则不再使用后面的字幕查找器查找字幕。
注意: 如果指定了多个字幕查找器,请不要指定 languages 参数,否则可能会出现 LanguageError 错误(因为每个 SubSearcher 支持的语言可能不相同)。
常用参数说明(详细的参数信息请查看 subfinder -h):
参数 含义 必需
-l, --languages 指定字幕语言,可同时指定多个。每个字幕查找器支持的语言不相同。具体支持的语言请看下文。 否,subfinder 默认会下载字幕查找器找到的所有字幕。
-e, --exts 指定字幕文件格式,可同时指定多个。每个字幕查找器支持的文件格式不相同。具体支持的文件格式请看下文。 否,subfinder 默认会下载字幕查找器找到的所有字幕。
-m,--method 指定字幕查找器,可同时指定多个。 否,subfinder 默认使用 shooter 查找字幕。
-k, --keyword 手动搜索关键字. 当 SubFinder 使用本身的关键字无法搜索到字幕时, 可以通过这个参数手动指定关键字. 否
--video_exts 视频文件的后缀名(包括.,例如. mp4) 否
--ignore 忽略本地已有的字幕强行查找字幕. 注意: 这可能会覆盖本地已有的字幕. 默认 False。 否
--exclude 排除文件或目录,支持类似于 shell 的文件匹配模式。详情见下文 否
--api_urls 指定字幕搜索器的 API URL。详情见下文 否
-c, --conf 配置文件 否,SubFinder 默认从~/.subfinder.json 读取。
-s,--silence 静默运行,不输出日志 否
--debug 调试模式,输出调试日志 否
-h,--help 显示帮助信息 否
--exclude, 支持的匹配模式类似于 shell,* 匹配任意长度的字符串,? 匹配一个字符,[CHARS] 匹配 CHARS 中的任一字符。例如:
排除包含 abc 的目录:--exclude 'abc/'。注意添加单引号,防止 shell 对其进行扩展。
排除包含 abc 的文件:--exclude 'abc'。注意和上个例子的区别,匹配目录时结尾有 / 目录分隔符,匹配文件则没有。
--api_urls
字幕库 的链接不太稳定,有时候会更换域名,因此提供 --api_urls 选项自定义 API URL,以防域名或链接变动。
--api_urls 只接收 JSON 格式的字符串。
获取正确的 API URL 的方法:
字幕库的 API 一般形如 http://www.zimuku.la/search, 这个 URL 就是网页端 “搜索” 功能的 URL。
字幕组的 API 一般形如 http://www.zmz2019.com/search, 这个 URL 同样是网页端 “搜索” 功能的 URL。
SubHD 的 API 一般形如 https://subhd.tv/search.
射手网的 API 比较稳定,一般不会变动。
如果发现字幕网站的 API URL 发生改变, 欢迎提交 issue.
配置示例:
{
// 设置字幕库的搜索 API
"zimuku": "http://www.zimuku.la/search",
// 设置字幕组的搜索 API
"zimuzu": "http://www.zmz2019.com/search",
// 设置字幕组获取字幕下载链接的 API, 注意不包含域名
"zimuzu_api_subtitle_download": "/api/v1/static/subtitle/detail",
// 设置 SubHD 的搜索 API
"subhd": "https://subhd.tv/search",
// 设置 SubHD 获取字幕下载链接的 API, 注意不包含域名
"subhd_api_subtitle_download": "/ajax/down_ajax",
// 设置 SubHD 获取字幕预览的 API, 注意不包含域名
"subhd_api_subtitle_preview": "/ajax/file_ajax"
}
支持的语言和文件格式:
字幕查找器 语言 文件格式
shooter ['zh', 'en'] ['ass', 'srt']
zimuku ['zh_chs', 'zh_cht', 'en', 'zh_en'] ['ass', 'srt']
zimuzu ['zh_chs', 'zh_cht', 'en', 'zh_en'] ['ass', 'srt']
subhd ['zh_chs', 'zh_cht', 'en', 'zh_en'] ['ass', 'srt']
语言代码:
代码 含义
zh 中文,简体或者繁体
en 英文
zh_chs 简体中文
zh_cht 繁体中文
zh_en 双语
配置文件
配置文件是 JSON 格式的,支持命令行中的所有选项。命令行中指定的选项优先级高于配置文件的。
配置文件中的 key 一一对应于命令行选项,例如 -m,--method 对应的 key 为 method。
示例:
{
"languages": ["zh", "en", "zh_chs"],
"exts": ["ass", "srt"],
"method": ["shooter", "zimuzu", "zimuku"],
"video_exts": [".mp4", ".mkv", ".iso"],
"exclude": ["excluded_path/", "*abc.mp4"],
"api_urls": {
// 设置字幕库的搜索 API
"zimuku": "http://www.zimuku.la/search",
// 设置字幕组的搜索 API
"zimuzu": "http://www.zmz2019.com/search",
// 设置字幕组获取字幕下载链接的 API, 注意不包含域名
"zimuzu_api_subtitle_download": "/api/v1/static/subtitle/detail",
// 设置 SubHD 的搜索 API
"subhd": "https://subhd.tv/search",
// 设置 SubHD 获取字幕下载链接的 API, 注意不包含域名
"subhd_api_subtitle_download": "/ajax/down_ajax",
// 设置 SubHD 获取字幕预览的 API, 注意不包含域名
"subhd_api_subtitle_preview": "/ajax/file_ajax"
}
}