虽说像 Nastool 一类的 NAS 工具,可以轻而易举地做到自动识别、硬链接、重命名大多数真人影视剧,大大地减少了整理媒体文件的工作量,但它对动画的处理就不是很尽人意。在我收集到的动画蓝光光盘转录(BDRip)资源中,除了正片,还包含各种访谈、花絮、预告、音乐等额外内容。这些额外内容不仅命名千奇百怪,某些特别篇还散落在不同的文件夹内,nastool 做不到精准的识别。另一方面,我更倾向使用动画爱好者制作的附加名词注释、或是各种动态效果的字幕,这意味着即使我能借工具完成视频的整理和重命名,字幕的处理还是要靠自己。
诸如以上原因,最终我采取的是全部手动整理的方式来收集已完结动画的 BDRip,以保证质量。(连载番剧没有额外内容,使用 Autobangumi 可以轻松实现全自动化。)
前期准备
目前,我整理一部 BDRip 动画入库的基本流程是这样的:
下载视频文件➡️硬链接需要的文件➡️分类额外文件➡️查找字幕➡️TMDB搜索正式名称➡️重命名视频和字幕➡️移动至目的文件夹。
如果只是下载并不保种,可以省去硬链接的步骤。
在一众 BDRip 压制组中,VCB-Studio 的作品最具代表性。他们制作的 BDRip 不仅视频质量上乘,还收集了与动画相关的各类音乐、周边扫图等其他额外内容,文件分类更是无比清晰,命名也十分标准。只要能搞定 VCB-Studio 的文件编排,之后处理其他压制组乃至其他类型(真人影视剧)的作品,就都是小菜一碟了。
所以在正式开始之前,我们需要先了解一下 VCB-Studio 的文件编排规范。根据目前公开的资源整理规范以及实际下载到的资源,大多数时候会包含如下文件:
[VCB-Studio] #正片目录
├── ├── CDs #专辑总目录
│ ├── SPs #特典目录,视频文件和图片(包) 等
│ └── Scans #扫图目录
│── [VCB-Studio] xxx.zip #字体包
│── [VCB-Studio] xxx.sc.ass #字幕
│── [VCB-Studio] xxx.mka #外挂音轨
└── [VCB-Studio] xxx.mkv #正片
其中:
番剧主文件夹下的视频文件为正片,但可能还会额外包含 OAD 或 OVA,TMDB 一般是在 Season 0 番外篇的位置;
- 字幕文件和字体包要看有没有合作的字幕组;
- 外挂音轨目前实测只有 Jellyfin 支持,可以保留;
- SPs 文件夹可能都是预告采访等额外内容,也可能会存放一些未在电视上播放的特典视频,命名形式为 SP01.mkv,也是在 TMDB 的番外篇列表中;
- Scans 扫图文件夹中的图片,在各媒体程序中均无法同视频一起显示;
- CDs 音乐文件夹修改原数据会改动源文件不适合硬链接,如果有收集动画音乐的需求,需要把它们单独复制出来。
因此,一部 VCB-Studio 制作的作品中,最终能放进媒体库的部分有:
- 主文件夹 和 SPs 文件夹下的 视频、字幕;
- CDs 文件夹中的 音乐。
搞清楚这一点,后续的工作就简单了。
文件下载
在你能打得开的资源发布站上,例如 BANGUMI.MOE / SHARE.DMHY.ORG / ACG.RIP / ACGNX.SE / SHARE.ACGNX.SE,下载由 VCB-Studio 压制的动画。
硬链接
如果没有计划保种,可以直接改动源文件跳过这一步。
使用 Docker Compose 安装硬链接工具 Hlink:
hlink:
image: likun7981/hlink:latest
container_name: hlink
ports:
- 9090:9090 #左侧9090可以任意修改
volumes:
- /volume1/media:/media #存储空间映射
- ./hlink:/config #存放hlink配置文件的地方,要与下面一致
environment:
- PUID=1026
- PGID=100
- HLINK_HOME=/config #hlink配置文件路径
restart: unless-stopped
创建硬链接规则,提取主文件夹和 SPs 文件夹下的视频和字幕:
处理音乐文件时,修改原数据会改动源文件,所以不应该硬链接,要直接复制一份拷贝。
export default {
/**
* 自行修改硬链接路径,左侧为原文件路径,右侧为硬链接路径
*/
pathsMapping: {
'/media/Download': '/media/hlink'
},
include: [
'mp4',
'mkv',
'mka',
'ass'
],
exclude: {
globs: [
'**/CDs/**',
'**/Scans/**'
],
},
keepDirStruct: true,
openCache: true,
mkdirIfSingle: true,
deleteDir: false,
}
由于硬链接与原文件需要在同一个分区内,这里是将 /media/Download
内的文件硬链接到 /media/hlink
文件夹中。后续对文件的整理和重命名是在 /media/hlink
文件夹中进行。
文件分类
正片的处理不用我多说,要注意的是 /SPs
文件夹下的特典文件。该文件夹下一般有如下类别的文件,VCB-Studio 会严格按照这个标准命名文件,所以整理起来其实是很容易的:
特典类别 | TYPE |
---|---|
预告 Preview (Prev) 预告下一话内容 注意编号表示其预告的是第几话的内容而不是跟在哪一话后面 | Preview Web Preview |
菜单 Menu BD/DVD 播放选择菜单 | Menu01_1 Menu01_2 Menu01_3 Menu02 |
广告 Commercial Message (CM) 电视放送广告,时长一般在 7s/15s/30s/45s/... 左右 | CM SPOT |
宣传片/预告片 Promotion Video (PV) / Trailer 一般时长在 1~2min 命名参考原盘和 jsum | PV Trailer Teaser |
无字 OP/ED Non-Credit Opening/Ending | NCOP NCED |
音乐视频 Music Video | MV |
真人特典 (节目、采访、舞台活动、制作...) Program/Interview/Talk/Stage... 对于这样的三次元长视频内容, 也可以一概怼成 IV | IV 或根据实际内容编写 |
特典 Special (SP) 剩下的各种二次元类型可以全部命名成 SP,对于较特殊意义的特典也可以自定义命名 | SP 或自定义 |
我们已经用硬链接工具过滤掉了无用的图片,只要处理剩下的视频和字幕就可以了。
每款程序对额外文件的要求有些微的不同,这里单独举例下。
Plex
根据 Plex 文档 电视节目本地预告及其额外节目(Local Files for TV Show Trailers and Extras) 的分类要求1中的说明,Plex 目前支持以下分类:
Behind The Scenes
:幕后花絮Deleted Scenes
:已删除场景Featurettes
:专题报道Interviews
:访谈Scenes
:场景Shorts
:短篇Trailers
:预告Other
:其他
按照我个人理解,VCB-Studio 规范下的特典分类中,通常情况下可以用到的 Plex 分类有这些:
Plex 分类 | 特典分类名称 |
---|---|
Interviews | IV |
Trailers | Preview、Web Preview、CM、SPOT、PV、Trailer、Teaser |
Other | Menu、NCOP、NCED 等其他无意义文件 |
也就是说,如果 /SPs
文件夹下的视频文件名包含 IV
,那么就移动到 Interviews
文件夹中,如果是 Preview
,就移动到 Trailers
文件夹,以此类推。
Shows
└── Series Name (2010)
├── Season 01
│ ├── Series Name S01E01.mkv
│ ├── Series Name S01E02.mkv
├── Season 02
│ ├── Series Name S02E01.mkv
│ ├── Series Name S02E02.mkv
├── Interviews
│ └── Interview.mkv
├── Trailers
│ └── Trailer.mp4
└── Other
└── NCOP.mkv
Plex 的额外分类文件夹需与季度文件夹同级。
效果如下,以「花絮」的分类显示,并注明预告片、其他等类别:
电视动画
剧场动画:
同时,预告片按钮会使用 Trailers 文件夹内的视频:
Jellyfin
根据 Jellyfin 文档 电视额外内容(Show Extras)中的分类要求2,Jellyfin 目前支持以下分类:
behind the scenes
:幕后花絮deleted scenes
:已删除场景interviews
:访谈scenes
:场景samples
:样本shorts
:短篇featurettes
:特辑clips
:剪辑other
:其他trailers
:预告extras
:囊括上述一切分类的万能分类
Jellyfin 支持的分类和 Plex 差不多,但额外支持了clips
剪辑、featurettes
特辑等特殊分类。同时,还支持在季度文件夹内使用额外分类,这一点 Plex 尚未支持:
Shows
└── Series Name (2010)
├── Season 01
│ ├── Series Name S01E01.mkv
│ ├── Series Name S01E02.mkv
│ ├── featurettes
│ │ └── Some Featurette.mkv
│ └── interviews
│ └── Interview with the Director.mp4
├── Season 02
│ ├── Series Name S02E01.mkv
│ ├── Series Name S02E02.mkv
│ └── behind the scenes
│ └── Behind the Scenes.mp4
└── extras
└── Fantastic Extra.mkv
电视动画(预告片在按钮里,如果有 Trailers
文件夹,点击会直接读取其中的视频,否则是 YouTube 中(多为英文)的预告):
剧场动画:
Emby
目前暂未搜索到 Emby 针对额外分类的支持文档。但实测下来,是会读取 Trailers
文件夹中的文件并显示为预告片。
Extra
在 TV 中会一并归类为特别篇,在 Movie 中则是显示为附加。
此外的文件夹,可以确定是不支持的。
既然不支持,也就没有展示的必要。如果你是像我一样 Plex、Emby 双开,就算不展示也不想删除这些文件,根据《Excluding Files & Folders(排除文件和文件夹)》的说明,可以考虑在 Other
、interviews
等 Emby 不支持显示的文件夹中,加入一个名为 .ignore
的文件。
加入前:
加入后:
字幕下载
你可以在这个 网站 上下载到大量由动画爱好者制作和分享的字幕。
TMDB 搜索
例如【太空丹迪】,在 TMDB 上搜索:https://www.themoviedb.org/search?query=太空丹迪
得到以下链接:https://www.themoviedb.org/tv/60874-space-dandy
直接复制首页的【太空丹迪 (2014)】即可,留后续重命名备用。
重命名
为了能够尽可能自由地切换媒体程序,例如从 Jellyfin 换到 Emby,或是从 Emby 改用 Plex,我们要让视频的命名及文件编排能被这三种程序同时识别。
电视动画
电视动画在创建媒体库时选择「电视节目」的分类。一般情况下这样编排:
电视动画
├── 四叠半神话大系 (2010)
│ ├── Season 00
│ │ ├── 四叠半神话大系 (2010) S00E01.mkv
│ │ └── 四叠半神话大系 (2010) S00E02.mkv
│ └── Season 01
│ ├── 四叠半神话大系 (2010) S01E01-E02.mkv
│ ├── 四叠半神话大系 (2010) S01E03.mkv
│ └── 四叠半神话大系 (2010) S01E04.mkv
├── ……
即创建主文件夹后,再创建季度文件夹 Season 00
、Season 01
,文件根据季度重命名为 S00E01
、S00E02
,S
为 Season
季度的缩写,E
为 Episode
剧集的缩写。视频文件命名的时候以 番剧名 (年份) SXXEXX
的格式为佳,另外名称可以使用简体中文,不用刻意改为日文片假名或是英语译名。
如果有额外的预告、花絮等内容,那就在季度同级创建文件夹:
电视动画
├── 太空丹迪 (2014)
│ ├── Season 00
│ │ ├── 太空丹迪 (2014) S00E01.mkv
│ │ └── 太空丹迪 (2014) S00E02.mkv
│ ├── Season 01
│ │ ├── 太空丹迪 (2014) S01E01.mkv
│ │ └── 太空丹迪 (2014) S01E02.mkv
│ ├── Season 02
│ │ ├── 太空丹迪 (2014) S02E01.mkv
│ │ ├── 太空丹迪 (2014) S02E02.mkv
│ │ ├── 太空丹迪 (2014) S02E03.mkv
│ │ └── 太空丹迪 (2014) S02E04.mkv
│ └── Trailers
│ ├── 太空丹迪 (2014) PV.mkv
│ └── 太空丹迪 (2014) CM.mkv
└── 四月是你的谎言 (2014)
├── Season 01
| ├── 四月是你的谎言 (2014) S01E01.mkv
| └── 四月是你的谎言 (2014) S01E02.mkv
├── Season 02
| ├── 四月是你的谎言 (2014) S02E01.mkv
| ├── 四月是你的谎言 (2014) S02E01.mkv
| └── 四月是你的谎言 (2014) S02E03.mkv
└── Other
├── 四月是你的谎言 (2014) NCOP.mkv
└── 四月是你的谎言 (2014) NCED.mkv
由于 Plex 不支持季度文件夹内的文件夹识别,所以统一放在季度文件夹同级的位置。
有不同分辨率的视频的话,就在后面加上清晰度(用 -
隔开,注意空格)以区分:
电视动画
├── 太空丹迪 (2014)
│ ├── Season 00
│ │ ├── 太空丹迪 (2014) S00E01 - 720P.mkv
│ │ └── 太空丹迪 (2014) S00E01 - 1080P.mkv
│ ├── Season 01
│ │ ├── 太空丹迪 (2014) S01E01.mkv
│ │ └── 太空丹迪 (2014) S01E02.mkv
但对于动画收集,我想大家更多时候也会选择质量最好的版本吧?
剧场动画
剧场动画在创建媒体库的时候要选择「电影」分类。一般情况下这样编排:
剧场动画
├── 言叶之庭 (2013)
│ └── 言叶之庭 (2013).mp4
└── 古立特宇宙 (2023)
└── 古立特宇宙 (2023).mp4
或者是有其他清晰度的版本,只要主体命名准确,其余的部分程序会自动识别或忽略:
剧场动画
├── 你的名字。 (2016)
│ ├── 你的名字。 (2016) - 4K.mkv
│ └── 你的名字。 (2016).mkv
└── 借东西的小人阿莉埃蒂 (2010)
└── 借东西的小人阿莉埃蒂 (2010) - 720p.mp4
有预告片的话就创建相应分类的文件夹(因为TMDB没有对应的数据库,不会被索引数据,所以可以不重命名直接丢进去):
蓝色巨星 (2023)
├── Other
│ ├── BLUE GIANT [Completion Preview Screening][Ma10p_1080p][x265_aac].mkv
│ ├── BLUE GIANT [First Day Stage Greetings][Ma10p_1080p][x265_aac].mkv
│ └── BLUE GIANT [Teaser02][Ma10p_1080p][x265_flac].mkv
├── Trailers
│ ├── BLUE GIANT [TVCM01][Ma10p_1080p][x265_flac].mkv
│ └── BLUE GIANT [Trailer][Ma10p_1080p][x265_flac].mkv
├── 蓝色巨星 (2023).mka
├── 蓝色巨星 (2023).mkv
├── 蓝色巨星 (2023).zh-tw.ass
└── 蓝色巨星 (2023).zh.ass
字幕
参考 Plex file hierarchy example 一文以及实际使用过程中的经验,字幕重命名时,主体部分需要与视频一致,而后在其后缀前加上 .zh-CN
或.zh
简体中文, .zh-TW
繁体中文,以区分字幕语言。
例如:
这个勇者明明超强却过分慎重 (2019) S01E11.zh.ass
这个勇者明明超强却过分慎重 (2019) S01E12.zh-CN.ass
这个勇者明明超强却过分慎重 (2019) S01E12.zh-TW.ass
下面是一个关于中文变体的列表,可以适当地参考该表,根据所用字幕的实际地区精确地增加后缀。
变体名称 | 中文名称 | ISO |
---|---|---|
Simplified | 简体 | .zh-Hans |
Traditional | 繁體 | .zh-Hant |
Simplified and using Mainland Chinese terms | 大陆简体 | .zh-CN |
Traditional and using Taiwanese terms | 臺灣正體 | .zh-TW |
Simplified and using Singaporean (and until mid 2018, Malaysian) terms | 新加坡简体 (马新简体) | .zh-SG |
Simplified and using Malaysian terms (added in mid 2018) | 大马简体 | .zh-MY |
Traditional and using Hong Kong (and until mid 2013, Macau) terms | 香港繁體 (港澳繁體) | .zh-HK |
Traditional and using Macau terms (added in mid 2013) | 澳門繁體 | .zh-MO |
但我不建议使用 .zh-Hans
和 .zh-Hant
,因为 Jellyfin 不认,不会自动匹配到该字幕:
.zh-CN
也不认,但是可以使用 .zh-CN.forced
强制启用。
zh
倒是可以正常识别,并显示成 Chi
,即 Chinese:
Emby 与 Plex 都支持识别 zh-Hans
和 zh-Hant
:
而如下命名的字幕
天国大魔境 (2023) S01E01.zh.ass
天国大魔境 (2023) S01E01.zh-tw.ass
Jellyfin 会一并显示成 Chi
,导致无法区分:
Emby 和 Plex 都能正常显示。
如果再增加上 HK
天国大魔境 (2023) S01E01.zh.ass
天国大魔境 (2023) S01E01.zh-tw.ass
天国大魔境 (2023) S01E01.zh-hk.ass
Emby 和 Plex 都能正常显示
综上可以得出结论:
- 如果是 Plex 和 Emby 用户,建议简中使用
.zh-CN
,繁中使用.zh-TW
- 如果是 Jellyfin 用户,建议简中使用
.zh
,繁中使用.zh-Hant
或其他无法被识别成Chi
的语言用以区分 - 如果需要强制启用某种格式的字幕,在后面加上
.forced
,即天国大魔境 (2023) S01E01.zh-CN.forced.ass
你可能会问为何不是 .zh-HK
而是 .zh-TW
,因为繁体字幕更多时候是台湾人做的,你想用 .zh-HK
代表繁体也行 ¯\_(ツ)_/¯
至此,视频的处理就结束了。
音乐
处理完视频文件后,还剩下 CDs 专辑文件夹尚未处理。
VCB-Studio 发布的音乐资源都为 flac 格式的音频文件,并带有专辑编号。因此可以直接在 Musicbrainz 中找到对应专辑,再使用 Musicbrainz Picard 写入 id3tag 数据。
[171129] 「More One Night」/チト&ユーリ (flac+webp)
├── Cover.jpg
├── Scans
├── ZMCZ-11750.cue
├── ZMCZ-11750.flac
└── ZMCZ-11750.log
主要有两种情况:
- 已切割或是原生 Hires 的 flac 格式音乐;
- 未切割带有音乐数据
.cue
文件的音乐
针对第一种情况,直接复制或移动到目标文件夹中,使用 Musicbrainz Picard 处理。
第二种情况,使用 FB2K 读取 .cue
,转换成 flac
格式后使用。具体参考《MusicBrainz 不完全使用指南》一文。如果不会用 FB2K (fooba2000),我可以找个机会再水一水。
至此,一部 VCB-Studio 作品中能用到的文件,就都处理完毕了。
其他
关于压制组的选择
首推 VCB-Studio,然后是喵萌奶茶屋、LoliHouse,这两家和 VCB-Studio 的人员组成不能说完全一致,但也有不少相似。
其次就是 mawen1250,虽然不了解这个圈子,但 VCB-Studio 里经常提到雯姐。
然后就随便选了,有啥选啥,唯独不推荐 Moozzi2,锐化成一坨。
更多压制组可以多逛逛字幕论坛看看大家的偏好。
关于番剧数据标记
收集完动画后,如何判断是否收集齐全呢?可以尝试使用番组计划标记这些数据。
例如,下载完《【我推的孩子】》、把里头的视频和音乐都整理完入库后,可以在相应条目内查看是否收集完整。
有下载的就标记上,没有的后续也能查缺补漏。
最后
以上便是我整理 VCB-Studio 压制作品的流程及相关注意事项,记录在此供有需要的朋友参考,也方便我自己发现纰漏并修正。
收工!看芙莉莲去喽~
参考
- Jellyfin 文档:Shows | Jellyfin
- Plex 文档:Local Files for TV Show Trailers and Extras
- Emby 文档:https://emby.media/support/articles/Subtitles.html
- Plex file hierarchy example
- 电影也遵循这个分类:电影本地预告及其额外视频(Local Files for Movie Trailers and Extras) ↩
- Jellyfin 电影遵循的标准也与电视类似:电影额外内容(Movie Extras) ↩
本文作者:mikusa
本文链接:https://www.himiku.com/archives/how-i-organize-my-animation-library.html
封面出处:来月払うよ / JLT4n #Pixiv
版权声明:所有文章除特别声明外均系本人自主创作,转载及引用请联系作者,并注明出处(作者、原文链接等)。
非常感谢,帮助良多
大佬的文章写的很好,刚刚入nas的新人基本都靠大佬的指引把东西弄好了,但是目前有个问题是因为我担心刮削的文件夹导致新番的源文件夹太乱,把源和媒体库的文件夹分开了,导致目前如果下完之前就自动硬链接的话,新的文件就需要手动去调整(因为AB还没开始修改),请问有什么好的解决办法吗
那就趁番剧不多赶紧换用ab。
但要注意的是,ab只推荐用在新番上,老番还是换其他的工具吧。
压制组的话,jsum和AI-raws这两个组也很不错的,不过资源没放公网有点可惜,只能等人搬去公网做种。Scans这个处理的好蛋疼,不做种的状态下,肯定是跟视频文件在一起方便管理,但是emby又不能查看。
只能原种一份,然后硬链接筛选需要的文件一份,这样不做种的话可以直接删掉原种,整理也相对方便一些。
其实字幕结尾可以用chs和cht的,chs我用emby他是会识别的。比如XXX.chs.mkv比视频文件名多一个.chs就行。字幕子集化、BDMV字幕合成、字幕自动调轴在VCB那个字幕里面都有。字幕子集化经常用的是assfonts-gui。emby和plex不能播放iso镜像文件好蛋疼,收了好多原盘,结果只能调用外部播放器来播放,不过调用外部播放器播放,也省了买会员钱23333333。plex也不知道什么时候可以刮削TV原盘,目前三家就只有emby可以刮削TV原盘。
plex不认chs和cht……所以没办法,统一一下
我一般是 RSS Snow-Raw 的
在天雪可以直接RSS字幕
然后, nt 硬链接, TMM 刮削整理, 字幕重命名
既然说到了 ASS 字幕 和 字体包
那要不要 来 子集化
这样你的特效字幕就可以在任何地方播放了
同时也可以欣赏到 某些字幕组 对于字体邪恶的命名2333
子集化!正有此意,已经在水了 ΦωΦ
用 ChatGPT 糊的一个 Python 脚本, 给你参考下 ヾ (≧∇≦*) ゝ
哇!批量处理!
不过我目前还只是用gui挨个搞,毕竟有些丫的字体用的真的很偏,老报错……
缺啥字体会在体现在 err.txt 中
在 #配置 里
不知道大佬在管理含有多个剧场版的动画时是怎么做的。我现在的管理方法还要去手动改nfo文件orz
多个剧场版?是啥意思,分段吗?
就比如吹响上低音号一共有五部不同的剧场版,我想将剧场版与番剧整合到一个页面显示,现在我想实现这个效果只能去修改元数据让jellyfin将剧场版识别成特别篇
剧场版电影又不是电视动画,本来就没有分集的概念。你可以把合集打开,tmdb上如果有合集的数据的话就会自动整合到一起,一般会有,比如 这个。
就算没有,你也可以手动添加到合集中:
添加前
手动添加
添加后
虽然截图是emby的,但jellyfin我没记错的话是有合集功能的
手动改nfo既繁琐又没有必要(
emby的额外文件夹只有电影能用,tv只有trailers有效
不过分了也没说明...
没想到 emby 竟然对额外文件的支持这么差,这一点就连分家独立的 jellyfin 都比它要好
最好的还是 plex,但plex的显示效果又很差……
Jellyfin安装完 番剧也做了硬链接 然后看着好几百的动漫文件夹头皮发麻,想想还是等大佬的脚本吧,
如果文件夹里没多余的东西的话,可以试试用 nastool 批量处理一下
嘿嘿正参考大佬的网站尝试搭一个小站就看到又发新博客了
感谢大佬的教程,自己从使用Jellyfin构建动漫库开始摸索了三个月中遇到的所有问题让大佬的一篇文章全都解决了!
本来想写一篇动漫下载的教程,现在可以更放心地把主题确定为零基础小白科普了,相关进阶操作直接重定向到大佬这里来就行了~
谢谢你的喜欢,我这其实也算是小白科普性质的啦 (/ω\)