家用多媒体服务的折腾小结-元数据刮削相关
改一次名要六个硬币
编辑于 2023年11月07日 01:34
收录于文集
共8篇

刮削是什么

        刮削指的是补充视频文件资料的过程,并不是听起来字面意思上的去除视频无用信息或是裁剪视频之类的意思。实际上刮削这个词感觉是某种“反正已经这么多年叫过来了干脆将错就错”的错误翻译,原词scrapers可能原本想指铲土机而不是取刮刀这个意思。

为什么要刮削

        你从网盘或者pt上面搞到的资源,本质上只是一个或几个视频文件,这些视频文件只能向你提供播放数据,而不能提供电影本身的信息。比如哪个年份播出的,谁演的,谁拍的,大体剧情是什么等等。如果没有这些信息,你在jellyfin里就只能看到一堆干巴巴的文件图标,并且因为没有封面图,你要找某个电影就只能在茫茫多的一模一样的文件图标里一个一个文件名读过去,更别提某些文件干脆叫movie1,movie2,你还要回忆一下这东西是从哪下的可能是什么,这显然不是个舒适的体验。

怎么刮削

        想要获取一个电影/电视剧的信息,首先当然要有一个信息源,这个信息源通常是各类电影数据站,例如TMDB,OMDB,豆瓣等等。刮削器的本质,就是开发者写好的这些网站的爬虫,通过调用网站的网络接口(官方提供的api或者自己抓包分析的请求信息),获取指定电影的相关信息,然后以指定格式存储在本地的程序。

        jellyfin支持以插件的形式安装刮削器,并且默认自带了两个,具体可以参考前文jellyfin安装部署的部分。如前文所说,因为种种原因,jellyfin自动刮削效果经常不太尽如人意,而且出了错误难以在界面上手动调整(尤其是电视剧集信息出了问题难以逐集调整),因此我几经折腾以后选择了使用tinymediamanager(下简称TMM)外置三方刮削器手动刮削的方案。

        TMM有免费版和收费版,收费版是订阅制的不支持一次性买断,10欧一年。收费版相较于免费版主要提供了更多的刮削源,但是因为多出来的源也都是国外源,所以实际上不是很有必要(要是能来个官方支持豆瓣倒是很值得考虑考虑)。免费版只能从tmdb刮削,但基本上也够了。

        下载安装TMM以后,首先指定媒体文件夹路径,首选语言等等。因为比较简单,不再赘述,按照界面指引操作即可。与jellyfin一样,分开存放电影和电视剧,电影归为电影,电视剧/动漫/综艺都归为TMM中的电视节目。

主要操作

        上图中,更新媒体库是让TMM重新从媒体文件夹中检索媒体文件,一般新下了一些电影和电视剧以后,如果TMM里还不能看到可以手动点一下更新媒体库按钮。搜索和刮削则是搜索和下载相关媒体资料,编辑则是如果自动匹配的刮削不够正确时可以手动进行修改(甚至你不刮削所有资料全手写也不是不行)。重命名&整理我不用,看设置像是可以按照设定好的规则自动给文件重命名,有需要的可以自己了解一下。

        更新媒体库后,视频文件会初步展示在界面上,未被刮削的项目通常展示的是文件名/文件夹名,已被刮削的展示的是刮削后的名字(所选地区的译名)。一般第一次可以选择全量自动刮削来获取一个初步的结果。

自动搜索并刮削所有未刮削项目

        刮削是通过TMDB进行的,而TMDB在国内容易受到dns污染,导致地址解析失败。刮削器主要需要下面三个域名:

        api接口:api.themoviedb.org

        tmdb网站页面:www.themoviedb.org

        tmdb图床:image.tmdb.org

        如果你在浏览器可以直接访问tmdb网站,并且网站显示基本正常的话,那么后两个地址通常是访问正常的。一般来说,问题出在第一个接口。根据域名测试网站的检测结果(https://www.boce.com/ping),国内大多数运营商无法将api.themoviedb.org这个域名解析到正确的ip上,

dns污染严重

        由于ip地址解析的不对,所以根本无法刮削。

因为解析到的ip根本不通,所以尝试很久以后连接失败

        这种情况,我们修改host强制将api.themoviedb.com这个域名解析为测试网站上查到的可用的ip地址。用记事本打开C:\Windows\System32\drivers\etc\hosts文件,在里面添加这样一行:

添加host

        其中104.16.242.118是通过查询网站查到的可用ip,ip和域名中间打个tab。在host文件添加这行的意思就是当访问api.themoviedb.org时,直接使用104.16.242.118这个地址。添加后打开命令行,键入如下命令刷新dns缓存:

代码块
Shell
自动换行
复制代码
ipconfig/flushdns
复制成功

        如果你不是移动网的话,到这里应该可以正常刮削了,如果你跟笔者一样使用的是移动宽带的话,那么到这里你可能会在刮削时看到ssl握手失败一类的报错,原因不明。

        贴吧讨论说是移动墙中墙屏蔽导致的握手失败,提供的解决方法是挂个clash代理。那反正都挂clash代理了,索性host也不用改了,直接找个不被dns污染的网络环境里的服务器帮我代理网络请求不就完事了吗。这边推荐一个自用的不被dns污染的网络环境的服务代理商(https://glados.space/landing/LBN87-1VF1V-SH1EA-4KOLC),因为可以签到,所以实际还蛮便宜的(感觉上签到20天可以用10天的样子,实际上大约是半价了)。

        把clash挂起来以后,clash上配置允许lan链接,并记下端口(默认7890):

        

允许lan链接

            之后在TMM中 设置>系统 配置使用代理:

主机填本机ip,端口clash工作端口

        配置完成后重启一下TMM,现在TMM可以通过clash来代理连接了,虽然刮削的时候要手动挂上clash有点烦,不过再也不需要担心dns污染了。

刮削成功了

        TMM默认是通过文件、文件夹名做正则来获取电影的名字的,如果你的文件、文件夹命名不对,自动刮削因为匹配到的名字不对可能导致刮削失败。这种情况可以在电影上 右键>搜索并刮削指定电影 在打开的弹窗里手动输入电影的名字来进行刮削。

搜索并刮削选定电影

        打开的界面里可以通过手动输入一部分电影名进行模糊搜索,在搜到的结果里选择正确的即可。一些电影如果中文名搜不到可以试试英文名,冷门电影如果搜不到中文元数据也可以试试英文元数据。

手动搜索匹配

        电影因为没有季的概念,每个视频文件通常是独立的,因此相对来说刮削难度比较低。只要文件名和电影名一致,通常都能自动匹配到正确的信息。电视剧、动漫则需要放的更加规范一些。给一个建议,不管一个剧集有几季,哪怕只有一季,存放的时候也手动建一个剧名/S01的文件夹,然后把视频文件丢在S01下面,这样可以保证剧名和季名自动匹配出来一定是对的。

图里的S01-S04实际上是分别下载的

        即使季名正确,由于视频文件的集数很多写法不标准,自动匹配出来的集数经常有问题。这种如果不想重命名或者修改TMM的正则规则的话,可以手动在TMM中编辑集信息,在任意节目上 右键>编辑选定的电视节目/剧集:

手动编辑

        在这个界面上你可以任意编辑nfo文件,甚至可以完全不通过网络刮削,所有信息全部手写。这也是我最终选择了TMM的原因,毕竟有的时候确实没法用自动程序来解决问题。

手动编辑剧集信息

        在这个页面选择集,可以手动维护 剧集名-文件路径-第几季-第几集 的映射关系:

映射关系

        正剧的季号都是从1开始的,即使只有1季,也是season1。类似动漫的特典、特别篇等,在TMDB中通常属于第0季,具体第0季中的第n集是对应哪一个特典,可以在TMDB网站内看到。不过TMDB对这些特典、op、ed、ova之类的通常信息不是很全,我一般都把这些东西的季手动设为-1,这样会显示为未知季也不会去乱匹配数据。

特典是第0季区别于正剧

点进去可以看到具体第几集是哪个特典

        有一些资源在down下来的时候已经附带了nfo文件,这种情况可以在TMM识别到文件信息后,右键选择“从NFO读取选定元数据”,

从现有的nfo读取

        之后如果觉得信息不全希望通过刮削器补充,可以再次手动刮削,并在刮削时选择左下角的“不要覆盖现有数据”:

不覆盖现有数据,只会补充原本没有的资料

        刮削完毕后,jellyfin刷新一下媒体库。

动漫海报墙

        Enjoy!