|
|
%!s(int64=4) %!d(string=hai) anos | |
|---|---|---|
| .github | %!s(int64=4) %!d(string=hai) anos | |
| AnimeFolder | %!s(int64=4) %!d(string=hai) anos | |
| DesignFile | %!s(int64=4) %!d(string=hai) anos | |
| MovieFolder | %!s(int64=4) %!d(string=hai) anos | |
| SeriesFolder | %!s(int64=4) %!d(string=hai) anos | |
| common | %!s(int64=4) %!d(string=hai) anos | |
| interface | %!s(int64=4) %!d(string=hai) anos | |
| mark_system | %!s(int64=4) %!d(string=hai) anos | |
| model | %!s(int64=4) %!d(string=hai) anos | |
| movie_helper | %!s(int64=4) %!d(string=hai) anos | |
| series_helper | %!s(int64=4) %!d(string=hai) anos | |
| sub_parser | %!s(int64=4) %!d(string=hai) anos | |
| sub_supplier | %!s(int64=4) %!d(string=hai) anos | |
| videofolder | %!s(int64=4) %!d(string=hai) anos | |
| .gitignore | %!s(int64=4) %!d(string=hai) anos | |
| Dockerfile | %!s(int64=4) %!d(string=hai) anos | |
| README.md | %!s(int64=4) %!d(string=hai) anos | |
| config.yaml.sample | %!s(int64=4) %!d(string=hai) anos | |
| downloader.go | %!s(int64=4) %!d(string=hai) anos | |
| downloader_test.go | %!s(int64=4) %!d(string=hai) anos | |
| go.mod | %!s(int64=4) %!d(string=hai) anos | |
| go.sum | %!s(int64=4) %!d(string=hai) anos | |
| main.go | %!s(int64=4) %!d(string=hai) anos |
本项目的初衷仅仅是想自动化搞定限定条件下 中文 字幕下载。
开发中,可能有不兼容性的调整(配置文件字段变更)
最新版本 v0.5.x 支持连续剧字幕下载
注意,因为近期参考《高阶教程-追剧全流程自动化 | sleele的博客》搞定了自动下载,美剧、电影没啥问题。但是遇到字幕下载的困难,里面推荐的都不好用,能下载一部分,大部分都不行。当然有可能是个人的问题。为此就打算自己整一个专用的下载器。
手动去下载再丢过去改名也不是不行,这不是懒嘛...
首先,明确一点,因为搞定了 sonarr 和 raddarr 以及 Emby,同时部分手动下载的视频也会使用 tinyMediaManager 去处理,所以可以认为所有的视频是都有 IMDB ID 的。那么就可以取巧,用 IMDB ID 去搜索(最差也能用标准的视频文件名称去搜索嘛)。
| 类型 | 是否支持 | 备注 |
|---|---|---|
| 电影 | ✔ | 已经支持,通过 IMDB、或者文件名进行搜索 |
| 连续剧 | ✔ | 已经支持,必须依赖 tvshow.nfo 中的 IMDB ID |
| 动画 | - | 待定 |
网站字幕优先级别暂定 :zimuku -> subhd -> xunlei -> shooter
暂时没打算实现
使用本程序前,强烈推荐使用 emby 或者 tinyMediaManager 对你的视频进行基础的削刮,整理好视频的命名,否则你自行命名连续剧是无法进行识别自动下载的。
目前测试,设置到 6 ,群晖918+ 8G 内存,是性能比较极限的数值。建议设置到 4 比较合适。太低就很慢,因为进行了大量的网络查询(依赖 IMDB API 以及各个字幕网站的查询接口)。太高的设置,这个看你的性能,也别太凶猛,不然被 ban IP。
其实也无需经常扫描,按在下现在的使用情形举例。每天上午7点30群晖自动开机,然后本程序自动启动。设置 12h 的间隔,晚上回家吃完饭很可能电影剧集更新,正好观看。(后续考虑给出多个固定时间点的字幕扫描触发功能)
如果你担心本程序的自动选择最佳字幕的逻辑有问题(现在这个选择的逻辑写的很随意···),那么建议开启这个 SaveMultiSub: true。这样在视频的同级目录下会出现多个网站的 Top1 字幕。
连续剧字幕自动下载的功能严重依赖于 IMDB ID,所以会自动去每个剧集的目录中找 tvshow.nfo 这个文件,这个文件是 emby 或者 sonarr 自动生成的。
如果你的剧集没有经过 emby 或者 TMM 的整理,那么抱歉,本功能将无法正常使用!
目录结构如下图:
可以看出,下面的目录名称是两个程序混合削刮的。后面带有 (年份)是之前手动下载的连续剧然后经过 TMM 削刮的,纯英文文件夹名称的是 sonarr 自动下载的连续剧
如下图,如果你的连续剧被 emby 或者 TMM 整理过,那么就有类似的命名样子。那么连续剧的自动搜索功能才能正确生效,否则无法正常使用。
编写以下的配置文件,注意 docker-compose 文件需要与本程序的 config.yaml 配套,特别是 MovieFolder、SeriesFolder 。
version: "3"
services:
chinesesubfinder:
image: allanpk716/chinesesubfinder:v0.5.0
volumes:
- /volume1/docker/chinesesubfinder/config.yaml:/app/config.yaml
- /volume1/docker/chinesesubfinder/logs:/app/Logs
- /volume1/Video/电影:/app/MovieFolder
- /volume1/Video/连续剧:/app/SeriesFolder
environment:
TZ: Asia/Shanghai
restart: unless-stopped
然后把 config.yaml.sample 复制一份,重命名为 config.yaml,内容如下(每个配置啥意思见《配置文件解析》)
UseProxy: false
HttpProxy: http://127.0.0.1:10809
EveryTime: 12h
Threads: 4
DebugMode: false
SaveMultiSub: false
MovieFolder: /app/MovieFolder
SeriesFolder: /app/SeriesFolder
把 config.yaml.sample 复制一份,重命名为 config.yaml,内容如下:
UseProxy: false
HttpProxy: http://127.0.0.1:10809
EveryTime: 6h
Threads: 4
DebugMode: false
SaveMultiSub: false
MovieFolder: X:\电影
SeriesFolder: X:\连续剧
首先,本程序会自动下载字幕文件,如下图:
这里演示开启了 SaveMultiSub: true ,也就是把每个网站最优的字幕都存下来
如果没有开启 SaveMultiSub: false,.那么就是下载一个。后续的刷新操作一样
然后,去 emby 对应影片的详情页面,点击“更多”。如下图
然后点击“刷新元数据”
注意,这里“搜索缺少的元数据”,没必要全刷新
直接播放影片,点击 “CC” 这个按钮是不是看到对应的字幕列表了。
电影、连续剧(后续会考虑:动画)
只搜索中文字幕
必要条件,视频文件经过削刮器处理
搜索优先级
支持的网站
subhd(根据优先级)
zimuku(根据优先级)
shooter(通过视频文件的唯一ID)
迅雷(通过视频文件的唯一ID)
感谢下面项目的帮助