iTunes使用的“专辑艺术家”标签是什么?有没有办法用Java设置它?

19

iTunes使用一种名为“Album Artist”的ID3标签,要使一个专辑在iTunes中真正成为一个专辑,专辑名称和专辑艺术家都必须相同。

据我所知,“Album Artist”不是官方的ID3标签,在迄今为止我所见过的ID3库中,没有支持“Album Artist”的。

预览

有人了解这个奇怪的标签吗?如何在Java中设置它(或者通过任何命令行实用程序进行设置)。


Windows。但我更喜欢一个Java(跨平台)实用程序,而不是一个命令行工具。 - CookieMonster
我相信在id3v2.4中,“专辑艺术家”被称为“乐队/管弦乐团/伴奏”(参见此处 - TPE2)。 - nevets1219
2
我的经验是(至少在 foobar2000 方面),专辑应该按“专辑艺术家”分组,而不是“艺术家”,因为一个专辑可能有多个贡献艺术家。我相信一个非常普遍的方法是每个曲目都有自己的艺术家(如果适用),然后整个专辑都有相同的“专辑艺术家”。如果您想更好地控制标签,MP3Tag 是一个非常强大的工具。 - nevets1219
就Java而言,我所遇到的第一个有TPE2支持,因此我猜您可以找到很多库来为您完成此操作。 - nevets1219
1个回答

28

以上的评论者是正确的,TPE2(“乐队/管弦乐团/伴奏”)是ID3标签,通常被重新用于此目的。我知道至少iTunes、Windows Media Player、J River Media Center和XBMC都使用这个标签,因为我在自己的音乐收藏中广泛使用它,并且所有这些应用程序都无缝支持它。

编辑此标签的方法:

图形方式:您真的不能错过mp3tag,唯一一个(在这种情况下为Windows,但在Wine下工作正常)处理多个文件非常好(除非您明确更改它们,否则不会更改值),允许您自定义拥有哪些字段(以及它们如何映射到ID3或FLAC标签等),还有其他很好的东西,比如干净地处理多种图像类型的APIC标签(封面,后盖,唱片图像,乐队照片)等。强烈推荐。

命令行方式:在这种情况下,id3v2命令行工具运行良好:

$ id3v2 -l foo.mp3 
[...]
id3v2 tag info for foo.mp3:
TFLT (File type): MPG/3
TIT2 (Title/songname/content description): Because Of The Blood (Single Version)
TPE1 (Lead performer(s)/Soloist(s)): Sin Fang
TPE2 (Band/orchestra/accompaniment): Sin Fang
[...]

$ id3v2 --TPE2 "Spice Girls" foo.mp3

$ id3v2 -l foo.mp3 | grep TPE2
TPE2 (Band/orchestra/accompaniment): Spice Girls

(这个工具在Ubuntu仓库中默认可用,使用sudo apt-get install id3v2命令进行安装)

来自Java:

可以使用诸如javamusictag等项目。我已经有一段时间没有使用过了,但类似这样的:

MP3File file = new MP3File(new java.io.File("foo.mp3"));
((FrameBodyTPE2) file.getID3v2Tag().getFrame("TPE2").getBody()).setText("Backstreet Boys");
file.save();

很接近(或者至少足够接近以便让你开始)。


2
非常感谢!示例代码非常好!你真的值得我50个声望点 :P - CookieMonster
将以下与编程有关的内容从英语翻译为中文。仅返回已翻译的文本:如果您在例子中使用了Backstreet Boys,答案正确并加1分。 - MaxiWheat
很遗憾标准程序使用TPE2作为专辑艺术家,因为它在设计上有着完全不同的目的。而且自从iTunes使用它以来,要撤销这种损害就非常困难了... - Yul Otani
iTunes做了许多值得怀疑的事情。例如,他们自定义的“TCMP”标记代表“编译的一部分”,这在许多其他工具中都不支持。(尽管id3v2也缺少这个重要功能。) - fluffy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接