使用id3v2获取MP3 ID3(V2)标签

时间:2011-03-12 22:10:40

标签: bash shell id3lib

我对V2 ID3标签的格式有一点了解。我只想获取MP3文件的'Genre'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'Genre'标签的最佳方式。非常感谢任何建议。

1 个答案:

答案 0 :(得分: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)”。如果改进应该   以“(”字符开头)   替换为“((”,例如“((I   可以找出任何类型)“或”(55)((我   想......)“。以下是新的   内容类型在ID3v2中定义   以与...相同的方式实现   numerig内容类型,例如   “(RX)”。

 RX  Remix
 CR  Cover