使用 Jellyfin 搭建二次元媒体库

10 年前,叔叔开始购买版权,打开屑站就能随时随地同步追番。

10 年后,即使你“游泳”到港澳台地区,你也只能看到少量蜜汁和谐过的内容。

至于大冤种会员?哦,他们只能看三体动画

为什么用 Jellyfin

其实最开始垃圾瓢虫安利的是 Emby,但是这公司似乎是掉到钱眼里面了:

  • 在不同的设备上播放都需要内购
  • 下载文件到本地离线播放需要内购
  • 硬件解码也需要内购

就很离谱,不想每个平台都买?那你得订阅 Premiere(我现在还不能理解为何这点功能能卖 $54 一年)

为了恰烂钱,甚至把他们的代码闭源了

Jellyfin 是 Emby 3.5.2 版本的一个开源 Fork,自由且免费。

Jellyfin seeks to continue development of the original Emby project with a Free Software ethos. It is committed to bringing all its users access to the best possible Media System, developed entirely by a community of volunteers who contribute code, documentation, translations, and support to the project.
About Jellyfin

Jellyfin 安装很简单,可以用 Docker,可以直接下载运行,而我的选择更简单——AUR
毕竟是 .NET 开发的软件,对运行环境没有依赖,直接交给 systemd 管理即可

搭建媒体库

由于 NAS 本身数据都在 ZFS 上,就直接开了一个 Jellyfin 的 Data Set,关闭了压缩和去重。

官方给的目录结构要求:https://jellyfin.org/docs/general/server/media/shows

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Shows
├── Series (2010)
│ ├── Season 00
│ │ ├── Some Special.mkv
│ │ ├── Episode S00E01.mkv
│ │ └── Episode S00E02.mkv
│ ├── Season 01
│ │ ├── Episode S01E01-E02.mkv
│ │ ├── Episode S01E03.mkv
│ │ └── Episode S01E04.mkv
│ └── Season 02
│ ├── Episode S02E01.mkv
│ └── Episode S02E02.mkv
└── Series (2018)
├── Episode S01E01.mkv
├── Episode S01E02.mkv
├── Episode S02E01-E02.mkv
└── Episode S02E03.mkv

这类个人推荐使用 Root > (Series) > (Season) > (Episode).xxx 的结构,可以降低元数据拉取的难度。

动漫的来源主要有 3 类:

  1. 新番订阅类,个人比较常用的是 mikanani.me
  2. BT / 离线下载,主要是下载一些压制好的老番,甚至准备了一个专门运行这类奇怪下载器的服务 apps.kookxiang.cloud (限内网)
  3. 一部分 PT 站下载的内容

其中 1 2 比较简单,直接配置下载目录到媒体库中,或者下载后移动过来即可
3 的话略微麻烦一点,需要保留一份原始结构用于挂种,之前我用的 ZFS 自动去重,现在更推荐走软连接

拉取番剧的元数据

Jellyfin 最大的问题是内置的几个数据源对动漫支持非常差,基本上只有像名侦探柯南这种才可能有元数据。
其实也还行,不过搜索的时候最好用日文名去搜,我现在是 Bangumi + TMDB 双持了

好在 C# 我也会一点,于是整了个 bgm.tv 的数据源插件:
https://github.com/kookxiang/jellyfin-plugin-bangumi

安装后在媒体库设置中勾选 Bangumi 这个数据源就能用上。

这个插件核心功能之一是自动识别集号,还记得官方的命名要求吗?文件名得有 [E01] [S01E01] 这样的内容才行。

实际上国内字幕组在命名的时候五花八门,有 番剧名 - 01,有 [番剧名][01]……
而且还会在文件名里带上奇怪的内容,比如 [1080P] [10bit] [h264] 还有部份文件名带了 CRC32 Hash 的。

直接带来的问题就是在默认情况下 Jellyfin 会识别成第 1080 集等奇怪的集数,一个个重命名过于麻烦,且对于 RSS 这类自动下载文件名的需要手动修改就更麻烦了。
所以插件内内置了几个常见的正则,涵盖了上面的几种情况,可以自动识别出正确的集号返回给 Jellyfin。

此外插件还会使用 bgm 上的评分和标签数据,这样界面上显示的评分和推荐视频会更科学。
别忘了登录授权下,这样能自动推送观看进度(自动点格子)

我的媒体库

在各种设备上观看

搭建好 Jellyfin 以后就可以直接在网页版看了,不过受限于浏览器,能够硬解的内容实在少得可怜,还是更推荐使用客户端看。

另外为了提升服务端上转码效率,我给 NAS 插上了矿潮时斥巨资 ¥450 购买的半高 GeForce GTX 1050 Ti

装上 nvidia-dkms 以后重启服务器,后台启用 NVENC 转码即可

如果还想折腾,可以打下破解补丁,解除消费级显卡上的 NVENC 数量限制
https://github.com/keylase/nvidia-patch/

MPV + Anime4K + SVP4

这里必须安利 jellyfin-mpv-shim 这个官方项目。

它的原理十分简单,在 Jellyfin 上选择投屏到它播放后,它就会自动调用 MPV 进行播放。
由于是走的投屏,可以使用手机登录 Jellyfin 进行远程控制,我这种床头吊显示器的用户表示爽翻了。

jellyfin-mpv-shim 自带的 MPV 已经内置了 Anime4K 的支持,按回车键进入菜单后选择对应的 Profile 即可。

MPV 也是能够用上 SVP 的插帧能力的,不过 jellyfin-mpv-shim 已经内置了支持,参考 readme 打开开关并配置使用 SVP 安装目录下的 MPV 就行了。

PS:这套方案我也在 macOS 上跑通了,但是 Macbook Pro 的性能…… 此外还要占用一个 SVP 授权,咕咕咕了

Infuse

之所以这几个放在一起说,是因为 Infuse 时苹果生态中最好用的媒体库软件,我的 iPhone / iPad / Apple TV 都用它。
如果你看的内容不涉及 4K HDR 以上的话理论上是不需要订阅的,不过它是在我 Apple TV 上唯一能正常播放杜比全家桶 Demo 还非常流畅的。

使用非常简单:新增文件来源中点击最下面的添加,菜单中直接可以添加 Jellyfin。

体验

访问我的媒体库主要有 3 种方式:

  1. 如果你能收到 10.8.1.0/24 路由,那么你可以内网直接访问
  2. 可以通过 Cloudflare 中继访问,需自备梯子
  3. 可以通过腾讯云服务器中转,目前只有 5M 带宽,可能会卡

如果你想体验一下,可以联系我获取地址

Author

kookxiang

Posted on

2023-01-29

Updated on

2023-01-29

Licensed under

Comments