理想影音库构建之路(二):关于老番管理这件事

介绍完上次的新番管理,接下来自然就是介绍老番的管理了。和新番管理不同,老番管理本身就是一个很杂的事情,所以这篇文章也没有一个清晰的线(大致分为源、刮削、播放),而是按照逐个问题来组织。同样也先看效果:

源:硬链接管理

比起新番,老番的数据源有很多,如BGmi完结番、PT下载、BT下载等等。因此想要直接构建Jellyfin需要的那种统一的媒体文件夹几乎是不可能的,因此硬链接几乎是唯一的选择。

  • 对于BGmi完结番,沿用上一篇的方案,直接复制到老番的媒体库文件夹就行。脚本不会对BGmi识别为完结的番进行硬链接操作,所以可以沿用脚本创建的硬链接。
  • 对于PT下载,最好使用对应站点提供的硬链接工具,比如天雪的ts2_link。创建完硬链之后也是移动到媒体库文件夹等待刮削。
  • 对于BT下载,直接移动不好、硬链了也可惜,毕竟BT不需要太长时间的保种。所以我要么在PT找对应资源辅种后硬链,要么就干脆等到有一定分享率的时候直接移动文件。

刮削:重命名文件

然后就是重命名文件了。重命名文件的目的和上篇一样,也是为了方便自动刮削。不过由于老番的情况复杂,所以其实主要目的只是为了让TMM能更好的识别集数信息。

关于重命名,我随便找了一个Python工具:jinalharia/py_rename。因为群晖环境的特殊性,我自己也Fork了一个适用Python 3.5的版本:kaaass/py_rename

基本的使用很简单,py-rename [-n] rename '正则' '新名称',其中-n参数表示仅预览重命名效果。重命名时也可以使用组来替换,比如py-rename '.+\.(.+?)' 'a.\1'就可以匹配后缀名并把文件名重命名为a

对于番剧命名,我总结了几条经验式子,算是基本够用吧:

# 将 [01] 命名为 [S01E01]
py-rename rename '(.+)\[(\d{2})\](.+)' '\1[S01E\2]\3'

# 将 第01話 命名为 [S01E01]
py-rename rename '(.+)第(\d{2})話(.+)' '\1[S01E\2]\3'

# 文件命名为第二个 [] 的内容,通常是 TV/CM/OP/ED。注意先加 -n 预览
py-rename -n rename '^\[.+\][^\[\]]+\[(.+?)\].+\.(.+?)$' '\1.\2'

比如对于[Snow-Raws] To LOVEる -とらぶる-这个资源来说,它每一集的格式是:[Snow-Raws] To LOVEる -とらぶる- 第01話 (BD 1920x1080 HEVC-YUV420P10 FLACx2)。这种情况就适合上面的第二个式子,更名后就会变成:[Snow-Raws] To LOVEる -とらぶる- [S01E01] (BD 1920x1080 HEVC-YUV420P10 FLACx2)。替换规则里默认都是第一季(S01),如果有需要也可自行更改。不过不做修改关系也不大,反正后面TMM刮削也可以批量修改,不算费事。

如果有字幕的话,也可以使用这个方式重命名。只有前缀名称相同的字幕文件才会被TMM识别,所以如果更改的话最好连同字幕一块修改。如果遇到OVA比较多的情况,也可以写一个规则来进行修改,不过这里只有6个所以其实也不用管。这样目录结构就会变成如下情况,就可以进入到下一步开始刮削了。

刮削:完全交给TMM

tinyMediaManager几乎是刮削工具里面的唯一选择了——功能全面、操作简便、支持内容全。而且作为Java Swing程序,TMM天生就是跨平台的,甚至可以在NAS环境下使用,非常的合理。

安装

正常PC无论是Windows还是Linux,直接下载即可。不过如果是没有图形界面的NAS就没办法直接打开了,不过好在也有Docker镜像专门解决这种问题:romancin/tinymediamanager-docker

docker run -d \
  -v [配置文件夹]:/config \
  -v [媒体文件夹]:/media \
  -e GROUP_ID=100 -e USER_ID=1026 \ # 如果不清楚,填写 id 指令的输出,不然没办法写入文件
  -p 5800:5800 \
  romancin/tinymediamanager:latest

如果想使用v4版本TMM的话,就改用romancin/tinymediamanager:latest-v4。之后进入http://ip:5800就可以看到TMM的界面了。

配置

除了界面语言配置之外,最关键的是刮削的配置。番剧在TMM中算作“电视节目”,所以需要在它的子项中配置。以v3版本为例(v4差差不多),一般来说需要配置这些项目:

  1. 媒体库目录配置番剧所在的文件夹。如果看不到文件夹内容,则需要检查下GROUP_IDUSER_ID是否配置正确
  2. 刮削器选择themoviedb.org。aniDB刮过来的都没有中文,要能接受也可以选择
  3. 刮削器-刮削器选项里,首选语言选择“大陆简体”。虽然不知道为啥还有个中文,但是两个差距好像不大?
  4. 图片里,首选语言选择“大陆简体”。这个决定的是海报上的语言,究竟是大陆简体还是中文更好完全随缘

刮削操作

刮削操作其实特别简单,如果做好了重命名,那直接更新源看到的番剧应该已经能识别集数信息了。

不过像刚才说的,没有修改的OVA就都被错误识别成了第四季第20集。所以需要手动编辑下,全选后右键批量编辑,在填写0然后点击右侧按钮就可以把所有OVA设置为第0季了(第0季一般表示特别篇)。不过集数的修改就没这么方便了,需要编辑所选之后一个个修改,因此还是建议在重命名时就用指令批量修改。

然后就是刮削了,右击番剧标题,选择搜索并刮削所选电视节目。选择合适的点击确定即可。

然后刮削就完成了。如果有不满意的图片,也可以点开来选择别的。最终效果如下:

如果检查刮削结果没问题的,就可以用重命名调整文件结构了。不过要注意的是,最好带着字幕做重命名,不然之后加起来会稍微麻烦点。

刮削:关于刮削的破事若干

1. 特典映像怎么办?

我也没有特别好的方法。如果是OVA等等被themoviedb.org标记成特别篇的还好说,但是如NCOP、NCED这些没人认领的特典就很难处理了。我目前的方法是,干脆摆烂不处理了。具体说来就是把所有无法分类的,季数设置为-1(将会显示为未分类,最好集数也设置成0)。

因为Jellyfin对于未分类的视频的处理方式是用所在文件夹当作一个单独的季,所以可以新建个文件夹“特典映像”,然后把所有东西都丢进去。

2. 字幕适配如何处理?

最好是手动添加,然后让字幕文件和视频文件前缀相同。这点基本下载对应某个资源的字幕即可。自带的那个字幕刮削器有时候效果还行、有时候又很烂,主要原因是不同资源可能时轴偏移不同。

3. 为什么不用Jellyfin自带的自动刮削?

因为批量编辑要了命了!虽然识别效果还行,不会像TMM那样总会刮到一些离谱的封面图,但是批量编辑麻烦的一笔。建议只用来微调TMM结果中不满意的部分,比如换个封面图还是可以的。

播放:Jellyfin媒体库配置

和上一篇的配置一模一样即可:

  1. 语言、国家地区设置正确
  2. 勾选“优先使用内置的剧集信息而不是文件名”
  3. 勾选“启用实时监控”
  4. 在“媒体资料储存方式”勾选“NFO”
  5. 勾选“将媒体图像保存到媒体所在文件夹”

播放:Jellyfin配置硬解

Jellyfin支持多种硬解方式,其中x86架构下最常用的就是VAAPI和Intel QSV了。其中VAAPI支持的操作多,而Intel QSV的效率更高。如果使用Docker部署Jellyfin的话,通常会用到两种镜像:linuxserver/docker-jellyfin官方的jellyfin/jellyfin。其中,官方的镜像对Intel QSV的支持很差,所以上一篇我推荐了linuxserver/docker-jellyfin

安装方法也很简单,

  • 如果是VAAPI。两个镜像默认都已经设置好了,直接跳过安装就行
  • 如果是Intel QSV。首先进入对应容器的控制台,然后执行如下指令
sudo apt update
sudo apt install vainfo intel-media-va-driver-non-free -y
# 执行上述后,执行下面的指令应该有输出
vainfo | grep iHD

之后在Jellyfin控制台-播放-转码选择对应的硬件加速方式即可。

如果已经使用了官方镜像,但是希望转到linuxserver镜像来开启Intel QSV的也行。但是它们的配置文件夹格式稍有不同,所以需要稍微操作一下。以src为官方配置文件夹,destlinuxserver的配置文件夹为例:

  1. src/config下所有文件复制到dest/
  2. src/下所有文件复制到dest/data/

播放:使用Kodi补完Jellyfin

Jellyfin在大部分方面做的都挺完善的,功能也够用,但唯独在电视上不行。Jellyfin for AndroidTV的BUG不能说很多,只能说数不清。而且Jellyfin本身不支持蓝光原盘、不支持外挂音频,这些都很影响整体体验。不过好在Kodi支持这些功能,而且也可以与Jellyfin本身交互。

创建Kodi媒体库

Kodi的安装很简单,直接下载安装包安装就行了(Archlinux也有对应包kodi)。由于Kodi主要为电视遥控器设计,所以操作逻辑在电脑上会比较奇怪。

为了添加媒体库,首先要保证资源可以被Kodi访问。如果资源在本地那倒无所谓,但如果资源在NAS等等地方,就需要建立FTP或WebDav等等服务了。之后,在设置-媒体-资料库-视频里选择添加视频,然后选择对应的文件夹就可以了。

与Jellyfin交互

通过上面的操作,确实可以让Kodi播放同一个媒体库的内容。但是这样观看记录不能同步,媒体库更新也和Jellyfin不同步。因此,上述方法最好用来播放Jellyfin不支持的媒体,比如蓝光原盘、外挂音频资源等等。而Jellyfin可以管理的资源就使用Jellyfin的官方Kodi插件来完成。

安装需要添加Jellyfin的插件库。首先下载repository.jellyfin.kodi.zip,然后在设置-插件浏览器里面选择从Zip文件安装。如果不方面通过文件安装的,可以在文件管理添加一个源指向https://kodi.jellyfin.org,这样选择文件时就可以直接从网络下载。之后就可以在从库安装-Kodi Jellyfin Addons-视频插件选择Jellyfin进行安装了。安装完毕后,只需要配置服务器地址、用户即可使用。

此时插件可能会询问选择哪种模式,一般情况下使用加载项模式(Add-on Mode)就可以了。这样不需要额外的配置就可以直接访问Jellyfin资源,但是代价就是不支持外挂音频这种资源。如果使用本地模式(Native Mode)则是需要手动设置访问媒体文件的方式,这样Kodi就会解析外挂音频资源,不过蓝光原盘还是不支持的。由于我们之前给这些资源创建了Kodi的媒体库,所以没必要使用本地模式。

设置完毕后,等待一次同步就可以看到媒体资源和播放进度了。

安装Embuary皮肤

如果不满足默认皮肤,推荐尝试下Embuary皮肤。这个皮肤的样式还是相当养眼的:

但是如果你的电视尺寸较大,就不推荐你尝试这个皮肤了。因为和官方皮肤相比,这个皮肤的字体小的可怜,在我家电视上几乎没法正常使用。而且关于此,作者的态度也十分傲慢。更蠢的是,如果你想在PC上用这个皮肤,你就会发现这个皮肤根本不支持鼠标。所以恕我直言,这个皮肤真的是相当鸡肋,除了它有时候确实还挺好看的。

安装方法很简单,在官方插件库的皮肤(Look and Feel)里面就可以找到Embuary(Matrix)插件,直接安装就行。然后一定要在界面里先把语言调成英文!不然切换皮肤后,所有文字都会变成“方块字”。之后切换后,按照向导设置就行。不过此时的首页还是比较混乱,所有媒体都没有按照Jellyfin的媒体库存放。所以可以在媒体中心-编辑菜单配置里面隐藏默认的几个项目,然后手动添加(每一项右侧都有+号)Jellyfin的单个媒体库即可。

这样使用起来就基本没有什么问题了。

后记

这篇文章的构成杂七杂八的,我个人确实不是很满意。不过Jellyfin这东西也确实就是有很多杂七杂八的细节,所以权当记录吧。

分享到

KAAAsS

喜欢二次元的程序员,喜欢发发教程,或者偶尔开坑。(←然而并不打算填)

相关日志

  1. 没有图片

评论

  1. isaac 2022.03.07 10:57上午

    问一个问题,我在刮削部分动画的时候,为什么识别集数总是错误,本来已经命名了 但是还会识别成65集,还要手动改

    • KAAAsS 2022.03.09 5:23下午

      可能是文件名 S_E_ 之前还有其他数字。最理想的文件命名应该是只有 S_E_ 部分,比如:

      py-rename rename '(.+)\[(\d{2})\](.+)\.(.+)' 'S01E\2.\4'

      文章里提供的命令只是替换了一部分内容,主要是考虑到规则可能会有问题需要调整,而只替换一部分比较通用~

  2. camac 2022.04.05 11:34下午

    Sp可以在文件夹中放入"忽略文件",削刮时即可忽略文件夹。
    文本编辑器新建空白文档,输入:*
    保存为以下文件名
    Emby、Jellyfin:.ignore
    PLEX:.plexignore
    TMM:.tmmignore

    • KAAAsS 2022.04.06 12:02下午

      竟然还有这种操作……不过研究了下,Jellyfin 的话好像是会完全忽略掉文件夹,那感觉硬链的话或许直接删掉也行?不过如果不做硬链的话,确实是一个保留 Sp 又完美刮削的好办法。

  3. wingsofthesky 2023.01.21 9:17上午

    TMM用下来,感觉自动能力不如nastools。。。特别对有些动画就只有一季的资料,比如说奈叶,只有无印的,AS和剧场版都没有
    但对于旧番我又没必要做个硬链接
    nastools还有个问题,识别不了avi和rmvb这些上古资源—-虽然,我也没觉得我有多大可能去重温(话说,在初中的时候,每年寒假暑假都会重温一遍天使怪盗和双恋,现在连孤独摇滚我都要在这个春节才能找到时间补。。)

    • KAAAsS 2023.01.22 2:20上午

      Hmmmm,对追番来说的话我个人觉得 nastools 有点复杂,而且也做不到完美刮削和 PT 友好(虽然对大部分人来说,这个倒也不刚需)。刮削本身的数据库番剧上两者 TMDB 都一样,nastools 还多支持个豆瓣和 bgm,合起来的数据确实是更全一些。不过在刮削和元数据编辑的自由度上 TMM 还是有优势的,虽然 GUI 设计的非常答辩。另外 TMDB 的季和其他家稍微有些不一样,同一部番的第二季在 bgm 会有单独条目,而 TMDB 只会有一个主条目开了一个新季度,TMM 刮漏季可能是这个原因。

  4. Revice 2023.01.22 5:40下午

    大佬 我有一个疑问 关于手动添加字幕的 网盘场景 方便infuse识别 我直接用tmm把番剧都改名了 结果字幕和视频对不上了 有啥好方法能处理呢(手动一个个改除外)

    • KAAAsS 2023.01.23 11:38上午

      TMM 是可以识别字幕的,规则和视频也是一样的,比如 S01E01.ass。我一般把视频改名成 SxEx 的时候会带着字幕一起改,这样之后 TMM 的改名功能也会把字幕文件也一起改名。

    • ADDICE 2023.04.07 11:33下午

      我字幕的命名是 同名.eng.chs.default.srt/ass 类似这样,基本是可以默认展示。但没试过网盘场景。

  5. Ryan 2023.11.10 8:48上午

    很多人都推荐 NASTools。但是我要收集粤语动漫,有的播出顺序和原版还是不一样的,越自动越麻烦,现在也是换成 TMM 手动了

    • KAAAsS 2023.11.10 1:46下午

      的确!NASTools 自动化错了调整起来麻烦不少

    • 菜鸟 2024.03.12 10:01上午

      大佬,求粤语动漫合集,TVB的我都收集不全,粤语版的太难收集了,跪谢

  6. 菜鸟 2024.03.12 9:55上午

    大佬,你的jellyfin电视直播是怎么添加到kodi里的?,我在jellyfin里添加直播,但是视频资料库里没找到,电视直播相关的内容,不知道怎么添加到kodi,希望大佬告知解决方法,跪谢,磕头

    • KAAAsS 2024.03.13 11:46上午

      Kodi 我建议是用它自己的电视直播插件,我用的是 PVR IPTV Simple Client。

      • 菜鸟 2024.03.13 12:04下午

        感谢回复,不知道为什么昨天晚上回去的时候突然又识别了,kodi自动添加了jellyfin的电视频道,暂时就剩自动播放下一集还搞不了,其他感觉不错

在此评论中不能使用 HTML 标签。