4

我很难理解 V2 ID3 标签的格式。我只是想获取 MP3 文件的“流派”ID3 标签,但 id3v2 实用程序返回的信息超出了我的要求,而且我不明白这些数据代表什么。

例如,我正在使用以下 bash 代码:

id3v2 -l "$FILE" | grep -i "content type"

它返回以下内容:

TCON (Content type): Jazz (8)

真的我只是想知道我是否可以安全地假设这将始终是格式,因此我可以安全地执行以下操作吗?:

id3v2 -l "$FILE" | grep -i "content type" | sed "s/^.*: //" | sed "s/ (.*$//"

(这将导致“爵士乐”。)

我正在尝试找到获取 ID3“流派”标签的最佳方法。非常感谢您的任何建议。

4

1 回答 1

3

我认为可以安全地假设该行将以 TCON 为前缀,所以我宁愿搜索它(这也是 i18n 安全的)。

id3v2 -l "$FILE" | sed -n '/^TCON/s/^.*: //p' | sed 's/ (.*//'

(无需运行 grep)


来自 /usr/share/doc/id3lib-3.8.3/doc/id3v2.3.0.txt

TCON

以前仅存储为一字节数值的“内容类型”现在是数字字符串。您可以像 ID3v1.1 那样使用一种或几种类型,或者,由于无法使用准确和最新的类别来维护类别列表,请定义您自己的类型。

可以通过以下方式引用 ID3v1 流派:作为第一个字节,输入“(”,后跟流派列表(附录 A.)中的数字,并以“)”字符结尾。这之后可选地跟随一个细化,例如“(21)”或“(4)Eurodisco”。可以在同一框架中进行多个引用,例如“(51)(39)”。如果细化应以“(”字符开头,则应将其替换为“((”),例如“((我可以找出任何类型)”或“(55)((我认为...)”。以下新的内容类型在 ID3v2 中定义,并以与数字内容类型相同的方式实现,例如“(RX)”。

 RX  Remix
 CR  Cover
于 2011-03-12T23:55:47.320 回答