一个标签编辑器,敢让你对着一万个文件跑
大多数人说标签编辑器时指的就是 Mp3tag,而它没有 Linux 版。rox 内置了一个完整的编辑器,还有一条为“批量大到‘一般都没事’不够用”这种情况准备的写入路径。
先说它不是什么
rox 是音乐播放器,里面装着一个正经的标签编辑器。Mp3tag 是专职的标签工具,而在“做一个专职标签工具”这件事上它更好:脚本、动作、可以拼装的格式串,还有二十年磨掉的棱角。如果你要的是独立工具,在 Windows 上对着某个文件夹跑一遍就关掉,那就用它。
在 rox 里做这件事的理由是,给媒体库整理标签通常不是一件做得完的任务。它发生在听歌途中,顺手改掉刚发现有问题的那个文件,所以编辑器挂在播放器和媒体库上正是重点,而不是妥协。
写入路径
就算你永远不装 rox,这一部分也值得一读。大多数标签写入器是就地改你的文件:打开原文件,重写元数据区域,然后祈祷。这样做几万次都没事,出一次事就是灾难,因为中途崩溃、磁盘满了或者硬盘被拔掉,留下的那个文件再也解析不了,而你的音频还在里面。
rox 从不往原文件里写。每一次编辑都会复制文件、在副本上应用改动、把元数据读回来校验、对音频流做哈希确认和进去时逐字节一致,然后才原子地把副本重命名覆盖原文件。任何一步失败就删掉副本,你的文件毫发无损,因为它从头到尾就没以写入方式打开过。
每个文件也是隔离的,所以四千个文件里冒出一个特别有病的,失败的就它一个,不会把整批拖下水。
批量编辑,但不把它压平
选任意数量的曲目,编辑器会打开成一份共享表单。每个文件都一致的字段显示它的值;不一致的字段留空,下面标着“多个值”。只有你真的动过的字段才会写入,所以没碰过的字段永远不会重写文件;而那些盖到整个选区上会变成胡说八道的字段,也就是标题、曲目号和碟号,在批量里会自己锁上。
批量里有某个文件不对时,表单会换成表格:一行一首曲目,一列一个字段,那些锁住的逐曲目字段可以就地编辑。这就是给“每个标题和编号都错得各不相同”的那种导入准备的视图,比一个个字段点进去强。两个视图走同一条写入路径,作为一个批次提交,结果不用重新扫描就落进媒体库。
它读什么、写什么
- 格式。 ID3v2、Vorbis comment 和 MP4 atom 都在一个编辑器后面,所以 MP3、FLAC 和 M4A 都是同一块屏幕。
- 评分。 通过 FMPS 和 POPM 写进文件本身,不是写进一个你带不走的数据库。
- 多值流派。 真正的列表,合并是作为媒体库的一种看法保存的,不是把你的标签改写掉。
- 封面。 多图专辑封面,添加和替换走同一条原子路径。
- 查询。 标签和封面来自 MusicBrainz、iTunes 和 Deezer,通过同一套差异视图应用,写入之前先看到会变什么。
- 修复。 针对标签以特定已知方式损坏、而不只是写错了的文件跑一遍,也就是别的标签工具会把它显示成一个文件名加零时长的那些。
- 模式,两个方向。 像
%artist% - %title%这样的格式串能从文件名里读出标签,同一个模式反过来跑就能按标签重命名文件。两个方向都会在写入任何东西之前逐曲目预览。 - 查找和替换。批量选择里值不一致的任何字段都能填一个查找和一个替换,纯文本或者带
$1的正则,预览会在写入任何东西之前数出有多少曲目会变。 - 排序名称和读音。文件自带的排序标签决定一个名字排在哪。没有的地方,MusicBrainz 补上艺人的排序名称,日文、韩文和中文名字会得到一个拉丁字母读音,喂给搜索和字母栏。两者都存在 rox 的数据库里,你的文件不动。
- 媒体库健康。一个由方块组成的窗口,每个标签一块,各自打开筛选到缺这个标签的曲目的媒体库:流派、年份、评分、排序名称、ReplayGain,再加封面、重复和曲目编号的缺口。
谁该继续用 Mp3tag
如果你在 Windows 上,而且靠动作、脚本或者更花哨的格式串工作,rox 没有对应物,换过来是降级。如果你要的标签工具不该兼做播放器,那这个形状整个就不对。
如果你在 Linux 或 Mac 上,或者标签整理是在听歌途中发生的,而不是当成一件单独的活儿,那这就是它填的那个空缺。
写入路径是那个没有对手可比的部分。覆盖原文件之前先校验音频流的哈希,标签工具一般不这么干,除非它早就打算对着你全部的收藏跑。要是你想在一次编辑和你的文件之间垫上这么一层谨慎,这里就有。
让它指向你一直在躲的那个文件夹
自由开源,不用账号,没有安装程序。媒体库那一面另外写了一篇;如果你是从一套 Windows 配置里出来的,这里还有 MusicBee 和 Foobar2000 的对比。