12 000 首歌乱成一团、文件名五花八门、封面缺失。我是如何在一次会话里把一切理顺的 — 真实方法,不是理论。

起点

坦白说:我的曲库是灾难。iPod Classic 上 12 000 首歌,二十年积累 — 提取的 CD、iTunes 买的、下载的文件、bootleg、没名字的歌、缺的封面、毫无逻辑地混在一起。一半显示成「未知艺术家」,另一半文件名荒谬。iTunes 已经排不了序。iPod 变得没法用。

我不是编程出身 — 我是木匠。但折腾够了,我最终做出了一套方法,以及配套的工具。以下是我的做法。

第一步:摸清家底

标注前,得知道现状。我按文件名排序曲库,看清了几个组:

  • 命名良好的文件(Artist - Title.mp3) — 约 40%。这些几乎总能自动识别。
  • 乱命名的文件(track01.mp3、01 - track.mp3、截断的标题) — 约 30%。这些得靠时长来识别。
  • 已有标签但错误或编码坏的文件 — 约 20%。要干净地重新标注。
  • 找不到的文件(bootleg、未发行的独立作品) — 约 10%。要手动标注。

第二步:批量识别

原则:不要一个个文件处理。指向文件夹,工具读每个文件,把名称 + 时长发给 Deezer API(MusicBrainz 兜底),拿回候选。命名良好的 40% 是自动的。乱命名的 30%,工具提供建议候选,你点一下确认。

QuickTagMP3 并行做这件事:你确认一首时,工具在识别后面的。两小时会话里,我识别了 12 000 首中的 9 000 首。

第三步:含糊的情况

不小心就会在这里浪费时间。一首歌可能有多个版本:录音室、现场、电台版、混音、变速版。只靠名字不够 — 是时长决定。文件 3:45 而「录音室」候选 3:42,多半是录音室版。文件 6:12 而现场候选 6:08,是现场版。

工具自动交叉比对标题 + 时长,但真正含糊的情况最好手动确认。我在我所谓的「头疼案例」上花了 30 分钟 — 乱命名的现场、没标注的混音。这是精确的代价。

第四步:找不到的

我曲库的 10% 不在任何数据库里:演唱会 bootleg、未发行的独立曲目、个人录音。这些没有自动识别。我手动标注 — 标题、艺术家、拖进去的封面。慢,但诚实:误识别的文件不如手动标注的文件有价值。

第五步:写入标签

12 000 首全部识别后,写入一次完成。工具把 ID3v2.3 标签(TIT2、TPE1、TALB、TYER、TCON)+ APIC 帧(高清封面)直接写到硬盘,UTF-8 编码。它清除旧的 ID3v1 和 TAG+ 标签以避免乱码。这是最快的一步 — 批量时它自己跑。

第六步:iPod 同步

文件标注好后,与 iPod Classic 的同步通过 iTunes 进行。有了干净的 ID3v2.3 标签和 APIC 封面,iPod 终于显示封面、按艺术家正确排序、一首「未知艺术家」都不再出现。

总结

3-4 小时的会话里,12 000 首歌从混乱变成了干净的曲库。我躲了多年的事,一个下午做完了。这正是我造工具的原因 — 因为手动方法在这个规模上行不通。而且我不是唯一一个面临这种情况的人。

教训

别从一个文件一个文件开始。从批量识别开始,把含糊的单独处理,把手动方法留给找不到的。这是管理大型曲库而不半途而废的唯一办法。