2011-03-12 136 views
4

我对理解V2 ID3标签的格式有点困难。我只想获得MP3文件的'Genre'ID3标签,但是id3v2工具返回的信息比我需要的要多,我不明白这些数据代表什么。使用id3v2获取MP3 ID3(V2)标签

例如,我用下面的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'流派'标记的最佳方法。非常感谢您的任何建议。

回答

3

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

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

(无需运行的grep)


从/usr/share/doc/id3lib-3.8.3/doc/id3v2.3.0.txt

TCON

'内容类型',其中 以前仅存储为一个字节的 数值,现在是 ric字符串。您可以使用一个或 几个类型作为ID3v1.1做了 或者由于类别列表将是 不可能保持与准确 和最新类别,定义 您自己的。

引用到的ID3v1流派可以通过 ,作为第一个字节输入进行“(”随后从 流派列表(附录A数字)和一个结束 “)”字符。这是 ,可选地接着是改进,例如 。 “(21)”或 “(4)Eurodisco”。几个参考文献可以在相同的框架中制作,例如,可以是 。 “(51)(39)”。如果细化应以 开头为“(”字符,则应将其替换为“((”,例如“((I 可以算出任何类型)”或“(55)((I 认为...) ”。以下新 内容类型中的ID3v2定义和 被以相同的方式实现为 的numerig内容类型,例如 ‘(RX)’。

RX Remix 
CR Cover