Docker ChineseSubFinder–中文字幕自动下载
本文最后更新于 2022年04月1日

前言

关于字幕自动查找并下载方面,我已经写过两篇文章了。Docker SubFinder  Bazarr 或多或少都有些,甚至可以说在中文环境下很难用。目前大家比较常用的字幕刮削器应该是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 的查询信息,以及共享字幕的信息

chinesesubfinder 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扫描媒体库即可,着急的话,可以配置完后勾选 程序启动立即开启扫描然后重启容器,这样扫描任务会立刻执行

0.1X版本使用说明

使用 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

启动容器后,马上关闭容器,因为这时我们还没有修改配置文件中的媒体文件地址

编辑/congfg中的config.yaml,填写你的媒体文件夹地址

UseProxy: false
HttpProxy: http://127.0.0.1:10809
EveryTime: 6h
Threads: 1
SubTypePriority: 0
SubNameFormatter: 0
DebugMode: false
SaveMultiSub: true
SaveOneSeasonSub: false
RunAtStartup: true
CustomVideoExts: mpeg,flv,f4v # 这里是举例,一般来说这一项可以不填写(删除)足够满足大部分人的需求
MovieFolder: /media/电影
SeriesFolder: /media/连续剧
FixTimeLine: true
# 下面的设置非必须,可以删除不要
WhenSubSupplierInvalidWebHook: abc.com
UseProxy,默认false。是否使用代理,需要配合 HttpProxy 设置
HttpProxy,默认 http://127.0.0.1:10809 。http 代理这里不要留空,不适应就设置 UseProxy 为 false
EveryTime,默认 6h。每隔多久触发一次下载逻辑。怎么用参考,robfig/cron: a cron library for go
Threads,并发数,最高到 20 个。看机器性能和网速来调整即可。
SubTypePriority,字幕下载的优先级,0 是自动,1 是 srt 优先,2 是 ass/ssa 优先
SubNameFormatter,字幕命名格式(默认不填写或者超出范围,则为 emby 格式),0,emby 支持的的格式(AAA.chinese(简英,subhd).ass or AAA.chinese(简英,xunlei).default.ass),1常规格式(兼容性更好,AAA.zh.ass or AAA.zh.default.ass)
DebugMode,默认 false。调试模式,会在每个视频的文件夹下,新建一个 subtmp 文件夹,把所有匹配到的字幕都缓存到这个目录,没啥事可以不开。开的话就可以让你手动选择一堆的字幕啦。
SaveMultiSub,默认值 false。true 会在每个视频下面保存每个网站找到的最佳字幕(见《如何手动刷新 emby 加载字幕》,会举例)。false ,那么每个视频下面就一个最优字幕。
CustomVideoExts,默认值是空。v0.12.x 版本出现。自定义视频扩展名,多个扩展名用英文逗号分隔
SaveOneSeasonSub,默认为 false。v0.12.x 版本出现。非必须的选项。true 的时候会在每一个连续剧下面保存 Sub_S01E0 这样的缓存文件夹,里面的内容是每一季的整季字幕包的缓存,便于人工核对。注意的是下载的是整季的字幕包才会出现在这,且整季的字幕包的命名要有 S01 这样的关键词才会下载。
RunAtStartup,默认值是 false,启动容器/程序时,是否开始搜索并下载。v0.16.x 开始有效。
MovieFolder,填写你的电影的目录
SeriesFolder,填写你的连续剧的目录
FixTimeLine,字幕时间轴校正(V0.19.x 开始启用),ChineseSubFinder/字幕时间轴校正V2
WhenSubSupplierInvalidWebHook,当字幕网站失效的时候,触发的 webhook 地址,xunlei、subhd、zimuku 解析故障的通知接口,给维护人员用,可以尽快去修复解析问题。一般人员无需关心此设置。默认使用的是 bark 的通知格式。

联动Emby

可选项

这里我就直接复制作者写的readme了

获取 Emby API KEY

如下图

LHejgM
4R18wN

编写 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

之后就可以再次启动容器了,容器启动后会自动遍历媒体文件夹,下载对应的字幕

另外,我推荐最好设置一下代理

Xnip2021-08-21_11-09-15

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

Xnip2021-06-25_16-34-40

使用 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

结语

目前ChineseSubFinder还在开发中,更新频率很高,最好保持在最新版,说不定某次更新就解决了你的痛点

高阶教程-追剧全流程自动化最的最大的痛点,字幕下载这块,总算是得到了一个不错解决,本文也会补充进高阶教程-追剧全流程自动化

番外

字幕命名格式的转换

从 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,最好能给出字幕命名格式的文档和示例。

原创声明
本文由 NG6 于2021年06月25日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:Docker ChineseSubFinder–中文字幕自动下载 | sleele的博客

评论

  1. 谢谢
    Windows Edge
    2年前
    2023-3-21 15:03:54

    如果电影放在多个盘符下面怎么办
    我没做raide

  2. silver
    Windows Chrome
    2年前
    2023-1-15 15:11:27

    我config文件下怎么没有config.ymal这个配置文件

  3. 雪散无敌
    Windows Firefox
    2年前
    2022-9-04 23:50:46

    请问,在不使用tmm的情况下,如何让plex生成nfo文件,以供chineseSubfinder使用?

    • 雪散无敌
      雪散无敌
      Macintosh Edge
      2年前
      2022-9-16 14:44:43

      @雪散无敌 目前我自己的解决方案是,在Sonarr和Radarr中设置,让他们下载完成后自动创建nfoヾ(≧∇≦*)ゝ

  4. wyc
    Windows Firefox
    2年前
    2022-7-19 20:25:14

    群晖dockerv0.35.1版本,显示‘当前没有可用视频’,更新缓存也没有
    群晖上 volume1/video/Film和Series,容器挂载video:/video,配置里设置了目录/video/Film和/video/Series,但还是没有用。用的plex。谢谢~

    • NG6
      wyc
      博主
      Macintosh Chrome
      2年前
      2022-7-26 10:50:57

      @wyc 举个例子
      影视文件夹真实路径/volume1/video/
      那么容器挂载路径为/volume1/video:/media
      软件内配置路径为/media/Film/media/Series

  5. 不浪
    Android Chrome
    2年前
    2022-7-04 8:51:49

    大佬能不能出个v0.3X的教程 谢谢

  6. 郭鹏
    Windows Chrome
    2年前
    2022-5-31 10:14:28

    我是ubuntu docker 环境使用 我拉取了29.2 这个版本 发现不能打开ip:19035这个界面 把这个镜像删了 改yml里面的版本号 改成25.0 就可以打开界面 yml里面只更改了版本 而且29.2 这个版本 运行起来容器 我等了好久 都不可以。。。谢谢您了 能加个联系方式么

    • zexi
      郭鹏
      Windows Chrome
      2年前
      2022-6-04 6:12:24

      @郭鹏 我也是,我新版本的都不行不知道为什么。老拿版本的也没用

  7. zgl
    Windows Chrome
    2年前
    2022-5-08 23:40:55

    大佬,为什么我用nasip+端口号进不去设置界面

  8. dachandler7
    Windows Edge
    2年前
    2022-4-12 3:33:50

    使用latest下载程序时,居然不是最新版本,给我下载了0.19的,这个版本是没有webui的,害的我一度以为是我的问题。。。后来手动到了最新0.25版本,终于有了weibui

    • NG6
      dachandler7
      博主
      Macintosh Chrome
      已编辑
      2年前
      2022-4-14 9:03:10

      @dachandler7 你用的docker注册表代理不对,没有更新,可以用上海交大的源,他们的docker 注册表好像是反代的,所以是实时的

  9. 玩课
    Windows Edge
    3年前
    2022-4-06 14:15:03

    parse “192.168.31.246:8096”: first path segment in URL cannot contain colon配置emby的url一直提示这个是什么原因啊

    • kev1nt
      玩课
      Windows Edge
      3年前
      2022-4-06 17:10:36

      @玩课 刚刚遇到了,前面要加http://
      容器关掉重置,重新配置一遍吧

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇