虽然像 Nastool 一类的媒体文件整理工具可以轻而易举地完成自动识别、硬链接、重命名大多数真人影视剧,但对动画的处理就有些力不从心了。在我收集到的动画蓝光光盘转录(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 命名参考原盘和 jsumPV Trailer Teaser
无字 OP/ED Non-Credit Opening/EndingNCOP NCED
音乐视频 Music VideoMV
真人特典 (节目、采访、舞台活动、制作...) Program/Interview/Talk/Stage... 对于这样的三次元长视频内容, 也可以一概怼成 IVIV 或根据实际内容编写
特典 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 分类特典分类名称
InterviewsIV
TrailersPreview、Web Preview、CM、SPOT、PV、Trailer、Teaser
OtherMenu、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 文件夹中的文件并显示为预告片的。

而预告片之外的文件,可以确定是不支持的。

字幕下载

你可以在这个网站上下载到由动画爱好者分享的大量字幕。

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 00Season 01,文件根据季度重命名为 S00E01S00E02SSeason 季度的缩写,EEpisode 剧集的缩写。视频文件命名的时候以 番剧名 (年份) 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-Hanszh-Hant

Emby
Emby

Plex
Plex

而如下命名的字幕

天国大魔境 (2023) S01E01.zh.ass
天国大魔境 (2023) S01E01.zh-tw.ass

Jellyfin 会一并显示成 Chi ,导致无法区分:

Emby 和 Plex 都能正常显示。

Emby
Emby

Plex
Plex

如果再增加上 HK

天国大魔境 (2023) S01E01.zh.ass
天国大魔境 (2023) S01E01.zh-tw.ass
天国大魔境 (2023) S01E01.zh-hk.ass

Emby 和 Plex 都能正常显示

Emby
Emby

Plex
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

主要有两种情况:

  1. 已切割或是原生 Hires 的 flac 格式音乐;
  2. 未切割带有音乐数据 .cue 文件的音乐

针对第一种情况,直接复制或移动到目标文件夹中,使用 Musicbrainz Picard 处理。

第二种情况,使用 FB2K 读取 .cue ,转换成 flac 格式后使用。具体参考《MusicBrainz 不完全使用指南》一文。如果不会用 FB2K (fooba2000),我可以找个机会再水一水。

至此,一部 VCB-Studio 作品中能用到的文件,就都处理完毕了。

其他

关于压制作的选择

首推 VCB-Studio,然后是喵萌奶茶屋、LoliHouse,这两家和 VCB-Studio 的人员组成不能说完全一致,但也有不少相似。

其次就是 mawen1250,虽然不了解这个圈子,但 VCB-Studio 里经常提到雯姐。

然后就随便选了,有啥选啥,唯独不推荐 Moozzi2,锐化成一坨。

更多压制组可以多逛逛字幕论坛看看大家的偏好。

关于番剧数据标记

收集完动画后,如何判断是否收集齐全呢?可以尝试使用番组计划标记这些数据。

例如,下载完《【我推的孩子】》、把里头的视频和音乐都整理完入库后,可以在相应条目内查看是否收集完整。

有下载的就标记上,没有的后续也能查缺补漏。

最后

以上便是我整理 VCB-Studio 压制作品的流程及相关注意事项,记录在此供有需要的朋友参考,也方便我自己发现纰漏并修正。

收工!看芙莉莲去喽~

参考


  1. 电影也遵循这个分类:电影本地预告及其额外视频(Local Files for Movie Trailers and Extras)
  2. Jellyfin 电影遵循的标准也与电视类似:电影额外内容(Movie Extras)