ChineseSubFinder / ChineseSubFinder

自动化中文字幕下载。字幕网站支持 shooter、xunlei、arrst、a4k、SubtitleBest 。支持 Emby、Jellyfin、Plex、Sonarr、Radarr、TMM
MIT License
3.43k stars 240 forks source link

提几点小建议,希望作者能实现 #36

Open jappiter1 opened 3 years ago

jappiter1 commented 3 years ago

你使用的 chinesesubfinder 是什么版本,什么环境?

chinesesubfinder 版本: v0.12.1

环境: docker

你想要新增或者改进什么功能?

辛苦作者,很棒的一个软件,至今用过最好的,希望可以实现以下几点功能/改进: 1、改进:我自己3000部电影的资料库基本达到了95%的自动下载率,但是有些电影我发现assrt.net上其实是有字幕的,但是并没有下载到任何字幕,不知是什么原因,例如“National.Lampoons.Senior.Trip.1995.1080p.WEBRip.x265-RARBG”、“Earth.2100.2009.1080p.BluRay.H264.AAC-RARBG”、“The.Break.Up.Artist.2009.1080p.WEBRip.x265-RARBG”、“My.Sisters.Keeper.2009.1080p.BluRay.x265-RARBG”、“Waiting.for.Forever.2010.1080p.BluRay.x265-RARBG”、“Jack.Goes.Boating.2011.1080p.BluRay.H264.AAC-RARBG”、“30.Minutes.or.Less.2011.1080p.BluRay.x265-RARBG”等,希望作者有空可以测试下,然后看看是否有什么办法改进。

2、新增功能:希望可以增加自由开关下载某几个字幕网站的功能,比如只允许在subhd下载“subhd=true;zmk=false;assrt=false;xunlei=false”;或者只允许在zmk和assrt下载不允许在xunlei和subhd下载,例如“subhd=false;zmk=true;assrt=true;xunlei=false”。

3、新增功能:希望可以增加优先选择简体或者繁体的功能,或者还是像现阶段一样按照网站推荐的优先级下载完字幕后,然后程序自动把繁体转成简体,或者把简体转成繁体,例如“chinese=simplified/traditional”。

4、新增功能:希望可以增加优先选择中文单语或者中英双语的功能,或者还是像现阶段一样按照网站推荐的优先级下载完字幕后,自动把中英双语转成中文单语的功能。因为类似srt这种不带格式的字幕,如果使用中英双语,会导致观影体验不是太好,很大部分时间字幕会占据屏幕大半部分的空间,例如我是用emby for android tv客户端的,即便是ass这种带特效的都会无法显示特效,导致英文字幕和中文字幕字体一样大。“bilingual=true/false”

5、新增功能:希望可以增加选择单个字幕源网站可以下载多个字幕的功能,比如设置"subhd=1;zmk=3;assrt=2;xunlei=0",软件就会按照各网站的优先级,在subhd下载一个字幕,在zmk下载3个字幕,在assrt下载2个字幕,不在xunlei下载字幕。其实这个功能和第二点可以合并。

6、新增功能:希望可以增加如果在4个中文字幕网站都搜不到字幕之后,可以fallback到opensubtitles或subtitleshub下载一个英文字幕,并命名为english(英,opensubtitles)结尾的格式,甚至还可以再利用翻译网站的api自动生成一个机翻字幕,并命名为chinese(机翻,opensubtitles)。"fallback to english=true/false"、"machine translation=true/false"。这个功能甚至可以成为某些同学希望看英文字幕来练习听力口语的功能。

7、新增功能:希望可以增加强制更新字幕的选项,比如我设置了zmk=3,一开始已经从zmk按照网站优先级下载了3个最优先的字幕,但是我希望能重新更新这3个字幕,比如有可能有新的字幕上传了,我不希望程序跳过它,所以希望可以有一个强制更新字幕的选项,例如“refresh/update=true”,即便已经按照设置下载完了,打开这个选项后,程序依旧会重新查询下载覆盖原有3个。“refresh/update=true/false”

8、新增功能:希望可以增加继续补全字幕的选项,例如现阶段下载字幕的过程中,subhd可能因为查询限制,导致某些电影无法下载字幕,但是程序从zmk或者xunlei已经下载好字幕了,那么打开这个选项后“completion=true”,例如字幕下载设置是“subhd=1;zmk=3;assrt=2;xunlei=0”,实际已经存在字幕是“subhd=0;zmk=3;assrt=2;xunlei=0”,再次运行时,不会因为已经存在zmk或者xunlei而跳过,而会继续完成。“completion=true/false”

9、新增功能:希望可以增加忽略非本程序下载的字幕的功能,即通过命名判断字幕是否为本程序下载的,还是本来就存在的,比如有些电影我自己下载了字幕或者通过kodi下载了字幕,并命名为“电影文件名.zh.srt”,那么程序会跳过这类字幕,认为改电影未下载字幕而按照设置继续下载补全字幕。“ignore other sub=true/false”

10、新增功能:希望可以再增加删除外来字幕的选项,毕竟如果该程序越来越完善,删除一些以前自己下载的字幕,也成了可以考虑的选项,“delete other sub=true/false”

11、关于subhd访问限制的改进:可以考虑这么一种功能,集成v2ray-core,现在大家基本都有很多机场线路,集成后,就可以增加一条又一条的线路进去,然后循环使用,当线路数量足够多的时候,比如设置了100条线路,总能达到不会触发验证限制。还有一个我发现,subhd有两个网址subhdtw.com,subhd.tv分别循环使用再加上v2ray的线路,最后设置合理的线程数,也能降低访问同一个ip的访问频率。

这个功能有什么可以参考的资料吗?

可以看到作者很用心在开发这个功能,我自己也长期在整理自己的电影资料库,以前都是从yyets下载带字幕的版本,并没有下载字幕的顾虑,yyets之后的时代,似乎找不到更好的规范化整理带字幕电影的渠道了,于是我转向了rarbg,是一个比较全并且压制电影比较规范化的平台,所以下载外挂字幕也就成了必选项,本来都是手工下载,或者kodi插件下载,3000多部是个大工程,并且数量只会增加不会减少,特别能体会这个下载中文字幕的刚需,所以在中文字幕下载的自动化上,这个软件真的是至今做的最好的,提了这么多需求,也希望作者不要介意,我知道这么多功能看上去有点崩溃,哈哈哈,希望作者能抽空研究看看实现难易程度,如果都能实现,相信这工具应该能挺牛逼的吧。

题外话:我的资料库是通过rarbg下载1080p的优先x265片源,然后tmm刮削手工整理不完整的,然后部署emby读取本地nfo文件和海报同人画建立资料库,再部署ChineseSubFinder刮削字幕,我个人还是比较希望所有数据都能自我掌控,不希望那种类似emby自动刮削还不能快捷找出刮削不到的、缺同人画、缺中文简介的,不能简单的补全的方式,而且tmm可以便捷的使用v2ray代理,emby/jellyfin/plex这类不好搞。唯一遗憾就是emby无法读取tmm刮削的本地演员头像,这件事就先不管了。等资料库建立完善,我还打算把它用docker部署btsync的方式共享出去。

allanpk716 commented 3 years ago

对于1

这里使用的是 shooter 给出的接口,需要读取视频文件计算出一个唯一ID(类似 MD5),然后通过这个 ID 去查询的。你提到的 assrt.net 这个是伪射手(射手关闭后出现的),貌似不是跟射手是一家。射手已经不提供网页服务了,伪射手提供网页服务。

本程序只有 zimuku 和 subhd 是通过爬虫去实现字幕查询的,shooter 和 xunlei 是有 API 接口。爬虫需要额外的精力去维护,所以就尽可能少就最优。所以 assrt.net 很可能不会增加爬虫搜索字幕的功能。

你提到的几个视频文件用 assrt.net 能搜索到字幕,我是了下直接复制其文件名去搜索是没有结果的。你能截图你提到的几个视频文件搜索的结果图吗?类似:

image

对于2、3、4

有 Web 后可以提供开关。

其中简繁优先级选择,暂时没看到有更多人提,所以写固化的。你说的简繁转换,粗略看了下,还是文件字符集的问题为主,可能会乱码,所以现在都是读取判断字幕预研而已,没有做转换。后面可以尝试。不过除了简,还是港、台,貌似还不是一样的。所以做这个需求对应使用者的反馈才行,不然体验估计不太好。

对于 5

这个可能需求就比较小众了。换个思路,我觉得如果大家是通过 Emby 去观看视频的,然后给官方提需求,能够获取到已播放视频选择的是那个字幕,再想办法汇总这个字幕选择的结果,提供统一的查询接口,这样匹配最佳字幕就有基准了。

对于 6

会加入 opensubtitles 的接口,但是应该不会考虑下载英文字幕,因为本程序目标是中文字幕。机翻可以考虑,但是质量堪忧。

对于 7

这个估计依赖 Web 会好操作一些

对于 8

这个还是更新和下载策略相关,需要收集更多的反馈

对于 9

我记得会判断当前视频的字幕是不是包含中文才跳过的,这个应该可以优化。或者我做过了记不住了···得看看代码

对于 10

这个估计依赖 Web 会好操作一些

对于 11

这个参考 #12 中的回复

不知道你使用了 sonarr 和 radarr 去自动化下载视频没有,建议用上,包你满意。

jappiter1 commented 3 years ago

辛苦了,没想到这么快就回复了。

对于1

截屏2021-07-28 下午8 26 36 截屏2021-07-28 下午8 26 53

是这样搜索的。 我以为射手shooter指的是assrt.net,是我的错。我不知道shooter还在运作,还以为只有伪射手🤦‍♂️。

对于3 如果实现简体转繁体会有一简对多繁的问题比较难以实现能理解,希望能实现繁体转简体的功能,因为我发现下载下来的字幕有一部分只有繁体字幕,那么其实我是希望能有简体的字幕在观影的时候看着更舒服。

对于5 可能我表达的不是很清楚,您理解错了,我提的建议不是指字幕的优先级,而是手动定制从每个字幕来源网站下载的字幕的数量,以期在万一遇到不匹配的字幕或者错的字幕时,可以随时有备选的几个选项可以选择的目的。

对于9 没错,是会判断是否是中文才跳过。而我的目的正是希望可以让程序忽视它的存在,即便已经有我自己下载的中文字幕,我依旧希望程序能自动帮我下载多几个字幕以达到冗余的目的。

sonarr 和 radarr 还没研究呢,我花时间研究看看,谢谢。

allanpk716 commented 3 years ago

辛苦了,没想到这么快就回复了。

对于1

截屏2021-07-28 下午8 26 36 截屏2021-07-28 下午8 26 53

是这样搜索的。 我以为射手shooter指的是assrt.net,是我的错。我不知道shooter还在运作,还以为只有伪射手🤦‍♂️。

对于3 如果实现简体转繁体会有一简对多繁的问题比较难以实现能理解,希望能实现繁体转简体的功能,因为我发现下载下来的字幕有一部分只有繁体字幕,那么其实我是希望能有简体的字幕在观影的时候看着更舒服。

对于5 可能我表达的不是很清楚,您理解错了,我提的建议不是指字幕的优先级,而是手动定制从每个字幕来源网站下载的字幕的数量,以期在万一遇到不匹配的字幕或者错的字幕时,可以随时有备选的几个选项可以选择的目的。

对于9 没错,是会判断是否是中文才跳过。而我的目的正是希望可以让程序忽视它的存在,即便已经有我自己下载的中文字幕,我依旧希望程序能自动帮我下载多几个字幕以达到冗余的目的。

sonarr 和 radarr 还没研究呢,我花时间研究看看,谢谢。

在学Web相关内容了,最近有点忙,估计年底前会大更新一次,提的需求部分可以同时加上。

allanpk716 commented 3 years ago

关于9

感觉跟 #38 的需求类似,考虑给一个临时方案吧,见这个 issue 下的回复。

allanpk716 commented 3 years ago

关于3

因为做了某些功能,现在再做,会比较合适。本地测试了下,还是编码问题很麻烦···可能会因为乱码导致不正确。

zhouzm commented 2 years ago

我也经常使用 assrt.net 手动搜索,直接使用 rarbg 源的文件名搜索命中率很高,字幕质量也不错,而且可以直接下载压缩包内的特定字幕文件。 MacOS 的 IINA 也直接支持自动下载 assrt.net 字幕 API 文档地址:https://assrt.net/api/doc

allanpk716 commented 2 years ago

我也经常使用 assrt.net 手动搜索,直接使用 rarbg 源的文件名搜索命中率很高,字幕质量也不错,而且可以直接下载压缩包内的特定字幕文件。 MacOS 的 IINA 也直接支持自动下载 assrt.net 字幕 API 文档地址:https://assrt.net/api/doc

  1. 暂时不考虑使用这个 API,因为是面向个人的,需要用户自己去申请
  2. 源头上并不希望引入过多用文件名去搜索的逻辑,还是以视频的唯一ID去匹配更好
  3. 如果这个网站开放了新的 API ,且支持上述特性、能够授权使用,那么应该会加入支持
zhouzm commented 2 years ago

回复好快,感谢。 我再阐述一下更多的理由供参考:

  1. 可以使用 config.yaml 配置 token 的方式使用,对于能使用 docker 的使用者来说,申请 api token 不是困难的事
  2. 我觉得文件名搜索是一个较灵活的使用方案(至少 rarbg 的文件名例如:Raya.and.the.Last.Dragon.2021.1080p.BluRay.x265-RARBG 是非常容易搜索匹配的),考虑 rarbg.to 是 BT 网站排名前3,并且视频质量最高的现实,哪怕是为它写特别解析代码也是很有价值的。一部分用户(比如我)仅仅是想自动下载字幕,为了获取视频的唯一ID,还要去部署 emby 或其他刮削工具,感觉又麻烦又增加了系统的开销。
allanpk716 commented 2 years ago

回复好快,感谢。 我再阐述一下更多的理由供参考:

  1. 可以使用 config.yaml 配置 token 的方式使用,对于能使用 docker 的使用者来说,申请 api token 不是困难的事
  2. 我觉得文件名搜索是一个较灵活的使用方案(至少 rarbg 的文件名例如:Raya.and.the.Last.Dragon.2021.1080p.BluRay.x265-RARBG 是非常容易搜索匹配的),考虑 rarbg.to 是 BT 网站排名前3,并且视频质量最高的现实,哪怕是为它写特别解析代码也是很有价值的。一部分用户(比如我)仅仅是想自动下载字幕,为了获取视频的唯一ID,还要去部署 emby 或其他刮削工具,感觉又麻烦又增加了系统的开销。
  1. 搜索字幕的软件很多,为啥他们(特指使用文件名搜索的逻辑)都做的总觉得差那么点,就是因为用的是视频的文件名去搜索匹配的。
  2. 他们陷入了一个怪圈,如果你下载的资源名称规范,字幕上传字幕命名规范就好办。如果不规范,剩下的就需要下载器去额外的去补很多的逻辑,这就是为什么源头上不推荐使用视频的名称去搜索。
  3. 现在虽然支持了 zimuku 的搜索,但是优先都是 IMDB ID 去找,然后最差也是用 IMDB ID 去找名称,再去用或者规范的名称去搜索的原因。基本是不会直接用视频的名称去搜索的。
  4. 文件名搜索如果命名规范是可以从中解析出是 Web 还是 DVD 版本,那么对应的字幕也不同(有偏移),感觉是个好版本,起始不然。因为目前看到的 python 项目是可以很好的解决时间轴偏移问题的。现在也在复现对应的功能,那么文件名去搜索的意义是不大的。
  5. 那么多年了,射手和xunlei 的视频 ID的搜索方案(API)一直就应该是最佳的,只不过他们没怎么用心罢了···所以我也打算建立对应的 API 服务,但是需要评估。这个方案就是人越多越好,然后要解决可靠的上传源问题即可。
  6. 这个工具以后应该会进行差异化,给出 Web 配置方案,然后倾向于新手使用,然后另一个版本会优先考虑深度用户(寻求字幕的分享给新手用户),需要配置一些信息,给出更多的设置(也许有你提及的 API 支持)。

最后,这些都是体力活···有空填填坑,只能先关注必须的功能,然后尽可能目标明确些,就会在近期有所取舍。不然取名字就不会是“中文字幕下载者”了···

six00 commented 2 years ago

兄弟 我觉得你这要求太多了 本身字幕自动化就是小众需求 然后你再弄这么多小众化的功能点 完全浪费开发资源,当然,你愿意配合开发那更好,如果不行,那最好还是能把精力集中放在整体功能的完整性和健壮性上

allanpk716 commented 2 years ago

没事,有啥想做的,只要是跟中文字幕相关的,我都可以想一下。主要还是得后期容易维护。现在举例这个 issues 已经很久啦,出来了很多功能,至少我觉得还是有必要的,v0.26 应该差不多稳定了,准备发布了