使用 id3v2 获取 MP3 ID3 (V2) 标签
Posted
技术标签:
【中文标题】使用 id3v2 获取 MP3 ID3 (V2) 标签【英文标题】:Get MP3 ID3 (V2) tags using id3v2 【发布时间】:2011-03-12 22:10:39 【问题描述】:我有点难以理解 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“流派”标签的最佳方法。非常感谢您的任何建议。
【问题讨论】:
【参考方案1】:我认为假设该行将以 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)欧洲迪斯科”。几个参考可以 在同一框架中制作,例如 “(51)(39)”。如果细化应该 应以“(”字符开头 替换为“((”,例如“((我 可以找出任何类型)”或“(55)((我 想...)”。以下新 内容类型在 ID3v2 中定义,并且 以相同的方式实现 numerig 内容类型,例如 “(RX)”。
RX Remix CR Cover
【讨论】:
以上是关于使用 id3v2 获取 MP3 ID3 (V2) 标签的主要内容,如果未能解决你的问题,请参考以下文章