Files
blogs/docs/notes/JellyfinFileOrg.md
SilverAg.L 56c2eb882f
All checks were successful
部署文档 / build (push) Successful in 4m22s
Edit Note: Jellyfin File Org
append notes about album\discs.
2025-07-06 22:59:38 +08:00

9.6 KiB
Raw Blame History

category, tag
category tag
折腾流程
Jellyfin
影音服务器
媒体库
刮削
文件管理

影音服务器——有关 Jellyfin 的文件归集

Important

本文仅探讨音、视、图、文在纳入 Jellyfin 媒体库时应该如何整理、刮削,并不涉及工具本身的部署以及媒体库的建立。如有需求还请另行查找教程,或翻阅官方文档

Emby 支持文件夹Jellyfin 不支持Emby 赢一半!(

Plex 怎样我不清楚,但 Emby 对文件摆放的要求的确是比 Jellyfin 宽松得多的。但在好友的撺掇下,我还是换用 Jellyfin 了。……然后,就被 Jellyfin 的刮削和文件结构要求气晕。

::: note 我个人的大致分类

  • 电子书Books
    • 漫画Comics
    • 小说Novels
  • 音频
    • 音乐CloudMusic
    • 音声DLsite、ASMR 虚拟主播的录播转码)
  • 视频、图片
    • 音声(实写录播)
    • 画师的差分图Fanbox、Patreon等等
    • MMD
    • 可爱的女装照(不是我的,我的都发出来惹

虽然上述一些内容的说法已经比较直白,但真的点出来是什么东西就还是有点超过了哈。 :::

有人可能会问,为什么音声会分音、视频呢?呐就要讨论下 Jellyfin 的媒体库了。

媒体库的类型

无论 Emby 还是 Jellyfin我想 Plex 也一样),对于媒体内容的界定通常比较分明。这当然可称得上一件好事,但视频不仅仅是影片,音频也不仅仅是歌曲。对于没办法归类成“剧集”的,尚有“家庭视频和照片”这种分类,这也就能够解释为何我把视频和图片归为一大类;然鹅对于没办法归类成“专辑”的,私密马赛,我莫得选择。

Jellyfin 媒体库类型 =180x

然后……接下来就讲讲音乐、书籍、家庭视频和照片怎么整理文件夹结构吧。电影和节目这块网上应该也有不少教程。“混合电影和电视”这一项据官网称已经弃用,不推荐选

::: tip 或者参考这些博客 毕竟我是死宅嘛。!!死宅真恶心。!!

书籍

::: details 官方给出的电子书摆放

Books
├── Audiobooks
│   ├── Author
│   │   ├── Book1
│   │   │   └── Book1.flac
│   │   └── Book2
│   │       └── Book2.mp3
│   └── Book3
│       ├── Book3.aac
│       ├── content.opf
│       └── cover.jpg
├── Books
│   └── Author
│       ├── Book4
│       │   └── Book4.epub
│       ├── Book5
│       │   └── Book5.epub
│       ├── Book6
│       │   ├── Book6.epub
│       │   ├── cover.png
│       │   └── metadata.opf
│       └── Book7
│           └── Book7.pdf
└── Comics
    ├── Plastic Man (1944)
    │   └── Plastic Man #002 (1944).cbz
    ├── Attack on Titan (2012)
    │   └── Attack on Titan #001 (2012).pdf
    └── Comic (2008)
        ├── ComicInfo.xml
        └── Comic #001 (2008).cbr

::: 简而言之,对于每一“本”书,最好单独开辟一个文件夹,然后文件夹里只摆放该书的单文件“合订本”(比如Books/王道24寄网/王道24寄网.pdf)。

但这么分在我看来十分甚至九分的抽象,因为我手里的大多数小说和漫画都莫得有效的标签,甚至绝大多数是由纯文本导出 PDF 而来。因此,比起官版墨迹的组织方式,不妨就按各人的阅读习惯组织起来,不支持的格式导出成 PDF就可以了。

家庭视频与照片

这一分类也是差不多的随性。官方也莫得文档来强制约束应当是什么样的文件组织。以《绝区零》铃妹的一组差分图为例:

《家庭视频和照片》 =180x

音乐

然后就是重头戏了,音乐。开篇我提过,我借助音乐媒体库还托管一些同人音声,那么对于音声的管理也是同样的。

::: details 官方给出的音乐摆放

Music
├── Some Artist
│   ├── Album A
│   │   ├── Song 1.flac
│   │   ├── Song 2.flac
│   │   └── Song 3.flac
│   └── Album B
│       ├── Track 1.m4a
│       ├── Track 2.m4a
│       └── Track 3.m4a
└── Album X
    ├── Whatever You.mp3
    ├── Like To.mp3
    ├── Name Your.mp3
    └── Music Files.mp3

:::

歌曲的刮削与组织

::: info 媒体刮削 刮削——或者我更愿意称之为“打标”或者“tagging”——指的是从特定渠道一定是互联网吗未必获取到这份音/视频的元数据信息(作者、标题、流派、专辑、发行年份,等等),并且填充进媒体文件的附加信息位(通常位于文件尾部),又或者单独整理成.nfo之类的数据库的行为。

这一词不仅限于音频,视频也是有元数据信息的,比如内嵌字幕(不同于剪辑、特效软件直接打在视频流上的文本框字幕)。

非要说的话,我更倾向于:“刮削”一词不过是老烧们捏出来唬人的,所谓的专有术语罢了。 :::

我的歌曲大多下载自网易云,通常来说都是刮削好的mp3flac文件,但也有些许例外,比如 VIP 歌曲复制链接跑去在线工具抓取下载得来的音频文件,呐怎么办呢?

之前看到的《基于 Jellyfin 和音流的 nas 影音库搭建及踩坑》(少数派)一文推荐了“音乐标签”这么个工具支持从网易云、QQ 等多个国内源抓取、刮削音频。此外Mp3tag官网下载官方文档)也可以从 MusicBrainz 等国外源抓取、刮削。

个人建议刮削阶段还是用国内源比较好,因为接下来我要讲一个“洛天依作品集”的故事:

洛 天 依 作 品 集 =420x

《洛天依》 =150x

但刮削工具也并非万能。比如《紫罗兰永恒花园 OST》的很多歌就被“音乐标签”那软件霍霍了个遍

《凹凸世界五周年》 =420x


刮削完了需要按上面的官方要求组织这些歌曲,毕竟 Jellyfin 不支持读取音乐标签自动聚合(这点在上面援引的博客中也吐槽了)。我个人用 Mp3tag 做批量重命名。相比起音乐标签Mp3tag 重命名时允许字符串格式化,比如$replace$num,方便一点。

Jellyfin 的音频搜集仅以专辑为依据。官方文档自己也说“as long as each album is contained within one folder”翻译过来就是“只需确保一个文件夹子树均为同一张专”。所以文件结构自然也以专辑为准。

::: details 分碟 事实上,根据我对音声的组织实践来看,需要确保的是一张专一个文件夹子树。比如下列情形会被拆分:

Author
  \AlbumA Vol.X
  \AlbumA Vol.Y
  \AlbumB Vol.X

这种情形会在媒体库里拆出两个 AlbumA分别为盘号 X 和盘号 Y正确的组织方式应为

Author
  \AlbumA
    \Vol.X
    \Vol.Y
  \AlbumB

当然,若是盘号没有显式标明,很有可能仍然会拆。所以就不能直接读音乐标签做自动聚合马? :::

音频音声的刮削与组织

不同于歌曲的刮削,音声通常是没有标签的。所以首先需要人为对这些音声进行分类DLsite 贩售的?主包的订阅限定?还是说有什么特征,是剧情音声?催眠音声?普通的奥数魔刃?

如果有些音声实在没有头猪,至少也用“散装”之类的文件夹包起来,尽量确保所有的“文件”都被文件夹收纳好,避免裸放在媒体库文件夹下,也避免文件夹和音声文件混着存放1

::: tip 理想的文件树(简化版本,但仍可能加载较慢)

flowchart LR
    A(["音声"]) --> B(["DLsite"]) & D(["订阅限定"]) & E(["音声录播"])
    B --> B1(["RJ416817"]) --> n1(("\*.mp3"))
    D --> D1(["希丝奈cisne"]) --> D11(["24-11"]) --> n21(("\*.mp3"))
    D1 --> D12(["八月舰长音声"]) --> n22(("\*.mp3"))
    E --> E1(["mahoulelys"]) --> n3(("\*.mp4.mp3"))

或者说,尽可能保证所有的文件均在树形图的末端(末梢、叶子节点)处。 :::

分类完毕之后,再对这些音声做批量的打标。

DLsite 上贩售的音声可用 Python 第三方库dvtag打标(从 DLsite 获取元数据可能需要代理),具体可参见开篇的参考博客;像音声录播通常就以主播为单位收纳好;至于可能存在子文件夹的订阅限定,可以用 Mp3tag 批量为这些音声的作者、年份字段打上标注,或是在专辑字段打上“谁谁的限定音声”,都行。


  1. 避免音声文件和文件夹混在一起,是因为:

    • 假若该文件并没有任何标签,那么你只能在 Jellyfin 音乐媒体库的(全部)歌曲那一页翻来覆去才找得到;
    • 假如该文件有打标签,那么所有和它混在一起的文件夹,里面的音声分类(哪怕自身有打标)均会被覆盖为该文件的标签。
    ↩︎