Featured image of post m-TAGS 使用指南

m-TAGS 使用指南

m-TAGS 对于文件本身不能挪动又希望能变更元数据的人来说是非常实用的。

本文翻译自小红。

如果你:

  • 在为音乐添加元数据标签(后文简称「标签」)时有洁癖
  • 正为你刚下载完成但标签糟糕的音乐种烦心
  • 因为某种原因不能编辑文件,又对单纯出于整理目的而浪费硬盘空间去额外存储一份音乐文件副本感到厌倦
  • 是 foobar2000 的使用者
  • 为寻找正确解决方法犯难

那么,这就是你该来的地方。m-TAGS 是一款 foobar2000 组件,提供了元数据管理的解决方案。简而言之,m-TAGS 允许你编辑、添加和管理你音乐收藏中的任意标签而根本无需触动音乐文件本身。通过它,你就能在既不需要实际更改文件,也不需要另存副本的情况下,按你的意愿去编辑你音乐的标签了。

我们需要做的,是告诉 foobar2000,别再从你的库里读取实际的音乐文件了,而是从 m-TAGS 的 .tags 元数据文件中去读取。如此,音乐文件实质上就变成了只读文件,你不会向它们写入任何东西,保护了其完整性。你音乐的播放和写入将会转而与 .tags 文件交互。

现在,你可能会想知道,.tags 文件到底是个啥玩意儿。所谓 .tags 文件就是一类囊括了存储在任意音频格式中任意标签信息的文件。无论标签类型如何(专辑艺术家、作曲家、发行商、CUE 信息……随你说),无论标签格式如何(ID3、Vorbis 注释、APE 等等),无论文件数量如何,.tags 文件会存储所有它力所能及的可用元数据。其结构与 JSON 类似,且能够通过任何文本编辑器浏览和编辑。你可以把它想象成 M3U 播放列表或是 CUE 文件,但完整支持标签编辑。

有兴趣了没?我会一步一步引导你完成初窥门径所需的操作。同时,正如前文所述,你当前正在使用 foobar2000 作为你的默认音乐播放器。但,如果不是,你完全可以「弃暗投明」,毕竟这款播放器很轻量。不过,关于 foobar2000 综述性的教程,本文就不提供了,有需求请见 foobar2000 使用指南

一步一步来

下载

下载 m-TAGS 组件

加载组件

打开 foobar2000,前往「参数选项」(快捷键 Ctrl+P)→「组件」,将刚下载的 .zip 压缩包拖放到组件列表,然后「应用」,重启 foobar2000。

配置组件

前往「参数选项」→「高级」→「标签」→「m-TAGS」然后按下图完成所有设置:

配置媒体库

现在,我将假设你已经配置好了一个媒体库。

如果还没有,请前往「参数选项」→「媒体库」然后添加你的根音乐文件夹,或是任何你存储下载所得音乐的目录。完成后,确保将 *.tags 填在「限制为」栏内。

然后是「排除」栏,将你库里所拥有的一切音乐格式都填进去,使用「通配符(*).格式扩展名」,再用分号(;)分隔。下面是一个示例,应该能覆盖常用格式、存档格式以及 CUE/播放列表文件。你也可以按需添加。

1
*.CUE;*.M3U;*.M3U8;*.FLAC;*.WAV;*.MP3;*.OGG;*.APE;*.ZIP;*.RAR;*.7Z;*.BIN

配置完成

如果一切顺利,你的媒体库浏览器现在应该是空的了。

不用担心,这是意料之内,因为我们目前将 foobar2000 设置成仅加载库里的 .tags 文件了。这就确保了不会有任何真正的音乐文件被带进来,也就因此避免了任何我们不希望发生的改写。从此,所有播放和写入操作都只会发生在 .tags 文件上了。

用 m-TAGS 处理媒体库

现在是时候用 m-TAGS 处理你的库了,可以通过 foobar2000 的图形界面或命令行来完成此步操作。

通过图形界面处理

在 foobar2000 菜单栏,前往「文件」→「m-TAGS」→「Create m-TAGS (in same folder)」然后将之指向你的根音乐文件夹。

如果你想单独存储 .tags 文件,比如另一个磁盘的文件夹,请确保将那个文件夹也添加到媒体库,然后勾选「参数选项」→「高级」→「标签」→「m-TAGS」中的「Only use absolute paths in references」选项。在生成 .tags 文件时,选择「Create m-TAGS (in separate folder)」而不是相同文件夹(same folder)。

通过命令行处理

如果你的音乐文件储存在通过 Samba 挂载至电脑的硬盘上,它不会显示于图形界面的文件选择框,这时你需要使用命令行来处理。确认 foobar2000 程序所在目录已添加进系统 PATH 后,在命令行中输入如下命令:

1
foobar2000 /m-TAGS "/foo/bar"

请将上述的 /foo/bar 替换为实际的音乐储存目录。例如,若要为储存于 D:\music\album\ 目录的专辑生成 .tags 文件,则应使用如下命令:

1
foobar2000 /m-TAGS "D:\music\album\"

完成加载

耐心等待你音乐文件的 .tags 文件全部生成完毕。如果你在窗口布局中给媒体库浏览器留了位置,你应该可以看到它不断增长并罗列出你的音乐。

**然后就万事大吉了!**现在你可以按照自己的意愿整理你的音乐,无论是增添还是编辑,都不在话下。而这一切操作都完全不会与你对文件不变的期待冲突。

注意

  • m-TAGS 目前仅适用于 foobar2000。不过它的实现文档是公开的,所以,也许在将来,它会支持更多播放器也说不定。
  • .tags 文件的生成并非自动化的。每次你想要往库里新增音乐,你都需要手动从音乐文件再生成一次 .tags 文件。这很容易,只需要对你的音乐文件夹再次点击「文件」→「m-TAGS」→「Create m-TAGS file」,然后它们马上就会加入到你的库里。
  • 目前 foobar2000 生成 .tags 文件时可能受部分 cue 文件 (例如非 UTF-8 编码的 cue 文件) 影响,在 .tags 文件中额外生成一份内容为乱码的专辑目录。对于这种情况,手动删除由 cue 生成的乱码部分即可。
  • 需要将音乐传输到另一个设备,且想要这些标签写入进去?创建文件的副本,在 foobar2000 播放列表中将它们载入到原始文件对应的 .tags 文件之下,然后通过「属性」窗口复制粘贴标签(在 .tags 的「属性」先 Ctrl+ACtrl+C,然后在副本的「属性」Ctrl+Shift+V)。
  • 任何直接通过 foobar2000 完成的文件操作(「右键菜单」→「文件操作」→「复制到…/移动到…/重命名到…」)都会通过 .tags 执行,而不是音乐文件本身。
  • 文件大小信息也会反映 .tags 文件而非音乐文件本身。
  • 以上指南假设你将封面图存储在外部(例如 folder.jpg 或 cover.jpg)。如果你有任何想要通过 .tags 文件携带的内嵌封面,请取消「参数选项」→「高级」→「标签」→「m-TAGS」中「Do not encapsulate album art」项的勾选。内嵌封面就会(封装)存储在与 .tags 文件同目录一个隐藏的二进制文件(.bin)中。虽说单纯从外部提取和存储封面图会更好。
  • 如果出于某些原因导致 .tags 文件与其音乐文件的关联断开,比如文件位置变更/重命名/删除,下面是一些重建关联的方法。

手动编辑文件

  • 在你常用的文本编辑器中加载 .tags 文件,然后在定位(@)部分变更位置。确保不要误删周围的引号。
  • 如果音乐文件和 .tags 文件不在同一目录下,你可以使用相对路径名(../../../etc.)或绝对路径名。对于绝对路径名,带反斜杠(\)的 Windows 风格路径名或带首尾斜杠的 UNIX 风格路径名都好使。

请注意:你必须用反斜杠转义反斜杠(例如,你的 Windows 路径名看起来应该像 F:\\Music\\Artist\\....)。

自动编辑文件:重关联版本(最适合批量编辑)

本方法涉及通过 Windows 命令提示符的 DIR 功能生成文件列表。

该方法尤其适用于 .tags 原本的定位路径名与新的路径名相去甚远的情况。例如,音乐之前存放在一个与新文件夹目录结构完全不同的磁盘中。

假设你想要将整个包含了艺术家及其嵌套专辑的文件夹重新关联起来。艺术家的目录树看起来应该类似于这样:

E:

└───Music

  └───Animals as Leaders

      ├───2009 - Animals as Leaders

      ├───2011 - Weightless

      ├───2014 - The Joy of Motion

      └───2016 - The Madness of Many

这些专辑由分轨 FLAC 组成,有一个除外,它是 MP3。

  • 在此情况下,导航到 Music 文件夹,打开命令提示符(摁下 Windows+R,输入 cmd,回车),输入 cd,然后空格,复制粘贴路径名(如果路径名中带有特殊字符,请将之用引号包裹),回车,然后输入「盘符:」形如 e:,再回车,即成功导航到所需文件夹,如图:
  • 输入(或粘贴)这段代码:dir *.flac;*.mp3 /s /b /o:gn

然后,就应该在命令提示符窗口中显示一个来自 Animals as Leaders 所有专辑,按文件名排序、按文件夹分组的完整曲目列表。图例仅供示意,艺术家与文中不同:

输入(或粘贴)这段代码:dir *.flac;*.mp3 /s /b /o:gn | clip

它能将曲目列表复制到剪贴板上,复制成功时没有任何提示,但你可以在别处粘贴查看内容。

  • 在 foobar2000 中加载需要重新关联的 .tags 文件。以与之前命令提示符窗口生成的曲目列表相同的方法排序音轨。
  • 打开 .tags 文件的「属性」窗口(默认快捷键是 Alt+Enter
  • 摁下 Ctrl+N 以新建一个字段。
  • 在「字段名称」栏输入 @
  • 单击播放列表的空白部分然后摁下 Ctrl+A,音轨应该会被全部选中。
  • 在 @ 栏右侧文本框摁下 Ctrl+V 以粘贴之前从命令提示符窗口复制的曲目列表。
  • 再次检查右侧的文件名是否与左侧的曲目标题匹配。
  • 单击「确定」然后退出「属性」窗口。试着播放音轨。如果成功播放,就说明你的文件关联成功了。

自动编辑文件:替代版本

本方法涉及利用 foobar2000 用于标签字段预处理器的高级标题格式化功能来替换部分路径名。

该方法尤其适用于 .tags 定位中路径名与新路径略有不同的情况。例如,你的音乐原本存放在 F:\Music 文件夹,现在挪到了一个专供音乐使用的分区 K:\,同时保持了相同的文件夹结构。

在此情况下,用 foobar2000 加载 .tags 文件,然后为它们打开「属性」窗口。

单击窗口底部的「工具」,然后单击「自动填充值」

单击下拉菜单,选择「其它…」,然后在右侧文本框中键入此语法:

$replace($info(@),'\<路径名中旧的需要被替换的部分>','\<路径名中新的部分>',)

确保使用单引号。仅在想要替换整个文件夹部分时才使用反斜杠。例如:'\Unsorted\anison megapack\BARAKAMON OST','\Music\Anime\Barakamon\2014 - Barakamon OST'

按照之前举的例子,应该输入 $replace($info(@),'F:\Music','K:\',)

注意:你可以通过指定另一个参数来替换多次出现的 <路径名中旧的需要被替换的部分>,例如:$replace($info(@),'F:\Music','K:\','\OST','\Original Soundtrack',....)

可以添加任意参数。

在「模板」栏输入%@%

再次检查右侧的文件名是否与左侧的曲目标题匹配。

单击「确定」然后退出「属性」窗口。试着播放音轨。如果成功播放,就说明你的文件关联成功了。

结语

更多信息请见 m-TAGS 主页HydrogenAudio 论坛的 m-TAGS 组件讨论

Written by ZexWoo. All rights reserved.
主题 StackJimmy 设计 | 使用 Hugo 搭建