将 ID3 标题标签设置为等于 MP3 文件名

将 ID3 标题标签设置为等于 MP3 文件名

是否有人有这样一个 bash 脚本,它可以遍历媒体库并将每个 MP3 文件的 id3 标题标签设置为与文件的名称相同?

我也愿意尝试其他自动化方法。它可以是一个 GUI 应用程序或任何可以自动完成工作的东西。

EasyTag 方法如下:如何重命名 mp3 ID3 文件中的批量标题标签— 不幸的是,我不明白这些步骤。

答案1

EasyTAG 确实是解决此问题的绝佳工具。我找到了答案这里。至于如何使用,最好的参考是EasyTAG 自己的文档

打开 EasyTag,导航到包含音乐文件的文件夹,选择文件夹中的所有文件,或者所有想要标记的文件,单击“扫描文件”按钮(您必须将鼠标悬停在它们上才能确定它是哪一个)。

然后,确保扫描仪下拉列表设置为“填充标签”,然后在“填充标签”字段中进行适当的编辑,直到字段下方的示例看起来像您要查找的内容。如果您需要有关在“填充标签”字段中输入什么的进一步帮助,请单击图例的“?”按钮(列出要翻译的不同可能代码),然后单击掩码按钮以列出一些起点。

如果您对结果满意,请单击“扫描文件”按钮(在“扫描文件”对话框中,而不是您最初单击的按钮...图标看起来相同),您的更改将得到应用。如果您没有获得艺术家或专辑名称,只需选择要更改的所有内容,输入数据并单击该字段旁边的小按钮,所有选定的文件都将填写或更改为该艺术家或专辑。这适用于大多数字段。

完成后,单击保存按钮即可完成。

附言:如果您有想要标记的完整专辑,或者至少有可供商业购买的歌曲文件,CDDB 扫描器通常可以很好地工作。

PPS:我似乎还处于半睡半醒的状态。根据您在原始帖子中所写的内容,请在“填充标签”字段中尝试以下操作:

%n. %a - %t

以下是与该问题相关的部分:


1.2.2. 使用“填充标签”扫描仪自动完成:

使用此模式的一些条件:

  • 按专辑排序的文件
  • 文件名或父目录包含标签信息(艺术家、专辑、标题……)
  • 标签为空或者不正确

“填充标签”扫描仪使用一种模式将文件名和目录中的单词与标签条目关联起来。通过这种方式,只需按下扫描仪窗口或工具栏中的“绿色”按钮即可自动完成标签字段。如果标签部分完成,请使用“首选项”窗口的“扫描仪”选项卡中的“扫描标签时覆盖字段”选项,将所有字段替换为新值。

每个代码对应一个字段,遵循以下规则:

Strings associated with code    Will fill the field
%a
  Artist
%b
  Album
%c
  Comment
%p
  Composer
%r
  Copyright
%e
  Encoded by
%g
  Genre
%i
  None! (used to ignore a string)
%l
  Number of tracks
%o
  Original artist
%n
  Track
%t
  Title
%u
  URL
%y
  Year

注意:为避免错误,建议在模式中仅使用一次代码。当然,就像手动标记时一样,扫描仪只会处理选定的文件。您可以使用列表中定义的模式,也可以编写自己的模式以对应文件名和目录的格式。为避免在选择或编写正确模式时出错,预览会在应用模式之前立即显示结果。如果您需要有关不同代码的帮助,请按“帮助”按钮(救生圈)显示每个代码的图例。此外,如果您想保存、编辑或排序自己的模式,请按“蒙版”按钮,扫描仪窗口上将显示一个小编辑器。

下面是使用模式的示例:

a)以下文件名:

“/mnt/MP3/EVANESCENCE – Fallen (2003) – Rock/01. Going Under.mp3”

b) with the pattern :

“%a - %b (%y) - %g/%n. %t”

c) you will fill the tag with theses strings :

    Artist (%a) => EVANESCENCE
    Album (%b) => Fallen
    Year (%y) => 2003
    Genre (%g) => Rock
    Track (%n) => 01
    Title (%t) => Going Under

答案2

易达标对音频(和一些视频)文件执行各种常见的批量标签/文件名操作。

答案3

我发现各种命令行工具都很有用:

id3v2

id3v2 是一个命令行 id3v2 标签编辑器。您可以添加/修改/删除 id3v2 标签,并将 id3v1 标签转换为 id3v2 标签。它使用 id3lib。我正在寻找一名共同维护者。如果您有兴趣,请给 myers_carpenter 发送电子邮件。

eyeD3

eyeD3 是一个用于处理 ID3 标签的 Python 模块和程序。还提供了有关 mp3 文件的信息(即比特率、采样频率、播放时间等)。支持的格式为 ID3 v1.0/v1.1 和 v2.3/v2.4。

当编写脚本来扫描目录时,这些是理想的选择。

答案4

这并不总是完美的,但我已经用它来获取 mp3 文件的名称,只使用常见的 unix 工具(包括 busybox 版本)也许拥有超过 6 个 Tom Petty mp3 的人可以对它进行进一步的测试。

for x in *.mp3; do
  TITLE=$(strings "$x" |grep TAG |grep -v TAGL |sed "s/^.*TAG//g ; /^L$/d ; /^@$/d ; /^$/d ; /^Ac$/d")
  #mv "$x" "$TITLE.mp3"
  echo $x" "$TITLE.mp3" #just echo for now, until further tested
done

编辑:我误读了这个问题,但了解了上述内容后,我们可以使用 sed 将 $TITLE 替换为文件名称“$x”,方法是使用 sed 替换字符串

sed -i "s/$TITLE/$x/" "$x"

我几乎 100% 确定这并不符合所有的 ID3 规范,但只要你先备份,它可能足以满足基本的个人使用

相关内容