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

2022-01-14 16:22:32 浏览数 (1)

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

源:硬链接管理

比起新番,老番的数据源有很多,如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

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

代码语言:javascript复制
# 将 [01] 命名为 [S01E01]
py-rename rename '(. )[(d{2})](. )' '1[S01E2]3'

# 将 第01話 命名为 [S01E01]
py-rename rename '(. )第(d{2})話(. )' '1[S01E2]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。

代码语言:javascript复制
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:v4-latest。之后进入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。首先进入对应容器的控制台,然后执行如下指令
代码语言:javascript复制
sudo apt update
sudo apt install vainfo intel-media-va-driver-non-free -y
# 执行上述后,执行下面的指令应该有输出
vainfo | grep iHD

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

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

  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这东西也确实就是有很多杂七杂八的细节,所以权当记录吧。

0 人点赞