转自sleele的博客
前言
目前大家比较常用的字幕刮削器应该是SubFinder,但是SubFinder年久失修,有些字幕站的API也已经失效,急需一款替代品来解决中文字幕匹配难,下载难的问题,好在ChineseSubFinder在此时应运而生。
ChineseSubFinder介绍
其实没啥可介绍的,功能目标很明确,就是方便自动下载中文字幕,并重命名字幕,符合emby规范,可以在emby、jellyfin、plex中识别并自动挂载。
https://github.com/allanpk716/ChineseSubFinder
ChineseSubFinder针对目前国内的几大字幕站都有做适配,对电影和电视剧的刮削效果都较为不错,动画片的支持也在开发中
使用说明
群晖下的部署非常方便,在群晖docker中,下载镜像allanpk716/chinesesubfinder:latest
运行镜像,填写你的UID、GID。挂载影视文件夹的根目录,之后就可以启动容器了
不知道UID、GID的请参考EMBY那篇文章,写的很详细,如果还是不懂,那么就 PUID=0,GUID=0,使用root权限吧
敲重点
ChineseSubFinder是根据NFO信息进行刮削的,所以能够正确刮削字幕的前提是你需要生成正确的NFO信息
EMBY生成正确的NFO信息,并存在媒体位,请照下图设置

详细设置请参照群晖使用docker安装&使用EMBY全流程教程-长文,写的很详细,我就不重复赘述了
# 影视媒体的目录层级最好是这样的,所有的影视分类和下载路径都在一个大分类下(比如都在影视文件夹下) –media |–downloads |–movies |–tv |–others

挂载路径可以按照我这个模板填写;需要注意⚠️请务必挂载/app/cache文件夹 否则容器体积可能会无限膨胀,后续这个文件夹可能还会缓存 IMDB 的查询信息,以及共享字幕的信息

hinesesubfinder 0.2X 版本使用说明&教程
0.2X版本已基本完善,0.2X版本将作为本文的主要讲解对象
使用 docker-compose 部署 chinesesubfinder 0.2X版本
version: "3"
services:
chinesesubfinder:
image: allanpk716/chinesesubfinder:latest
volumes:
- /volume1/docker/chinesesubfinder/config:/config
- /volume1/docker/chinesesubfinder/cache:/app/cache
- /volume1/Video:/media
environment:
- PUID=1026
- PGID=100
- TZ=Asia/Shanghai
ports:
- 19035:19035
restart: unless-stopped
docker-compose up -d
启动容器后,在网页中打开chinesesubfinder NAS-IP:19035
进入到配置中心,填写电影目录和电视剧目录,根据你容器挂载的路径来来填写

进阶配置可以参考我的


其他配置不是很重要,默认即可
之后等待chinesesubfinder扫描媒体库即可,着急的话,可以配置完后勾选 程序启动立即开启扫描然后重启容器,这样扫描任务会立刻执行
联动Emb
获取 Emby API KEYy


编写 Emby Api 配置信息
EmbyConfig:
Url: http://192.168.50.x:8096
ApiKey: 123456789
LimitCount: 500
SkipWatched: false
在原有的 ChineseSubFinder config.yaml 中新增一下配置信息
那么新增后的 ChineseSubFinder config.yaml 文件为:
UseProxy: false
HttpProxy: http://127.0.0.1:10809
EveryTime: 6h
Threads: 1
SubTypePriority: 0
SubNameFormatter: 0
DebugMode: false
SaveMultiSub: false
SaveOneSeasonSub: false
RunAtStartup: true
CustomVideoExts: mpeg,flv,f4v # 这里是举例,一般来说这一项可以不填写(删除)足够满足大部分人的需求
MovieFolder: /media/电影
SeriesFolder: /media/连续剧
FixTimeLine: true
# 下面的设置非必须,可以删除不要
WhenSubSupplierInvalidWebHook: abc.com
EmbyConfig:
Url: http://192.168.50.x:8096
ApiKey: 123456789
LimitCount: 500
SkipWatched: false
之后就可以再次启动容器了,容器启动后会自动遍历媒体文件夹,下载对应的字幕
另外,我推荐最好设置一下代理


稍等片刻就能够在自己的媒体目录下找到刚刚下载的字幕了


使用 docker 命令部署
docker create \
--name=chinesesubfinder \
-e PUID=1026 \
-e PGID=100 \
-e TZ=Asia/Shanghai \
-v $PWD/chinesesubfinder:/config \
-v $PWD/chinesesubfinder/SubFixCache:/app/SubFixCache \
-v $PWD/chinesesubfinder/video:/media \
allanpk716/chinesesubfinder:latest
使用 docker-compose 部署
version: "3"
services:
chinesesubfinder:
image: allanpk716/chinesesubfinder:latest
volumes:
- /volume1/docker/chinesesubfinder:/config
- /volume1/docker/chinesesubfinder/SubFixCache:/app/SubFixCache
- /volume1/Video:/media
environment:
- PUID=1026
- PGID=100
- TZ=Asia/Shanghai
restart: unless-stopped
番外
字幕命名格式的转换
从 v0.14.x (在此之前的都是默认 Emby 的格式)开始,将支持切换字幕名称格式模式,以应对 Jellyfin 和 Plex 和其他媒体工具识别字幕的问题。
在 config.yaml 中,将新增一个字段 SubNameFormatter。
UseProxy: true HttpProxy: http:/127.0.0.1:10809 EveryTime: 12h Threads: 1 SubNameFormatter: 0
SubNameFormatter 字幕命名格式(默认不填写或者超出范围,则为 Emby 格式,为了兼容以前的版本):
- 0,Emby 支持的的格式(AAA.chinese(简英,subhd).ass or AAA.chinese(简英,xunlei).default.ass)
- 1,常规格式(兼容性更好,AAA.zh.ass or AAA.zh.default.ass)
因为考虑到了 Plex 不支持 Default 字段,所以其实“常规格式1”,是不会添加 Default 字段的。
每次软件重启后,会自动判断是否需要将所有扫描到的字幕从 Emby 转为 Normal,或者反过来。
不会每次都全扫描处理一次,会有标记,第一次使用的时候会全字幕扫描处理一次,完成后,如果不改 SubNameFormatter 的配置或者清理缓存用的数据库(settings.db),是不会真正启动这个逻辑的。
考虑到可能出现的后续需要支持的字幕命名格式问题,针对该功能进行了比较大的重构,应该可以比较块的进行支持。有需求的请提 issue,最好能给出字幕命名格式的文档和示例。


