程序转储ID3标签结构


12

是否有一个程序可以转储ID3v2标签的完整结构?

不仅包括帧名称和值,还包括诸如帧顺序,文本编码,描述编码(用于TXXX帧),存在不同步,存在多个标签等完整信息。

背景:我很好奇为什么某些文件与某些程序不兼容。例如,某些由foobar2000编写的ID3v2.4标记不会被Winamp读取。使用Mutagen编辑可以解决这些问题,但是使用foobar2000进行编辑又会中断。这不是版本或数据编码-大多数其他v2.4 UTF-16标记都可以正常工作...但是,如果我使用foobar2000将标记转换为v2.3,然后又转换回v2.4,则它们在Winamp中可以正常工作–最后一点没有任何意义。

编辑: Linux或/和Windows。

Answers:


4

Windows上的mp3diags应该既检查已知错误,又让您查看原始标签-它列出了已知错误,但您也可以查看原始标签。我似乎找不到找到将其转储到文本文件的方法。标签数量有限,非常适合检查和批量固定标签。

在此处输入图片说明


这看起来很有趣。谢谢。(它仍然没有显示标签帧使用哪种编码,但是除此之外,它提供的信息还远远不够。)
user1686 2012年

MP3Diags似乎也有其自身的缺点(例如,对ID3标签的任何编辑都将其降级到2.3.0),尽管它在修复其他类型的流时效果很好。
user1686 2012年

10

exiftool可以提供很多信息:

exiftool -v3 -l FILENAME.mp3


exiftool确实能够转储包括ID3v4在内的原始信息!真厉害!
haimg 2012年

2

beaglebuddy MP3库做你的要求。它支持ID3v2.3标签,并且对ID3v2.4标签的支持将于2014年5月完成。它显示原始字节以及已解析的值。我提供了一些示例输出。

ID3v2.4 frame: SONG_TITLE
frame header
   bytes..................: 0x54 0x49 0x54 0x32 0x00 0x00 0x00 0x0A 0x00 0x00 
   frame type.............: TIT2: SONG_TITLE - title/songname/content description
   frame header size......: 10
   frame body size........: 10
   tag  alter preservation: false
   file alter preservation: false
   read only..............: false
   compression............: false
   encryption.............: false
   grouping identity......: false
   uncompressed size......: 0
   encryption method......: 0
   unsynchronized.........: false
   data length indicator..: 0
   group Id...............: 0
frame body: text information
   bytes...: 10 bytes
             0x03 0x54 0x65 0x73 0x74 0x20 0x4E 0x61 0x6D 0x65 
   encoding: 3 - UTF-8
   text....: Test Name

1

您可能需要编写自己的工具。 在这种情况下,TagLibid3lib可能有用。

特别要注意的是id3lib主页上的Projects列表,其中包含一些可以无需任何编程即可解决问题的工具。


我之前尝试了id3lib工具附带的id3info工具,它甚至无法识别带有ID3v2.4标签的文件,只有v2.3。不过,不确定这是由工具还是库本身引起的。我会看一下两者,但是这类库通常倾向于向开发人员隐藏标签结构(编码,顺序等),只暴露标签值对。
user1686 2012年

1

Mutagen python库包含一个名为mid3v2的实用程序,该实用程序提供了非常干净和彻底的转储/导出值,适合进行差异比较之前/之后进行。

如果您从未设置过python脚本,那么也许exiftools值得一试,但是我发现mid3v2容易得多。

metamp3专为此目的而设计,但IMO有点过时,它显示了一些非常常见的事实上的标准(阅读:iTunes)字段,为“ undefined”。

ID3RawTagViewer和ID3TagBackup也是很旧的工具,但您可能也会发现它们也很有用。

MP3Tags具有一个“全局导出”插件,但是在某些情况下,它使用其内部的“映射”字段名称“隐藏”了真实的帧名称,因此它们在不同格式(例如FLAC和MP3)中是相同的。

没有话题,但Ex Falso是Mutagen / Quod Libet家族的另一个成员,该家族对FLAC非常出色,但是出于某种原因“隐藏”了ID3的所有非QL自定义TXXX标签。

顺便说一句,许多人只是使用自己喜欢的HEX编辑器。。。


我之前使用过Mutagen,将检出metamp3和ID3RawTagViewer。其他工具仅显示抽象的“名称=值”标记,因此它们不适用于此目的。
user1686

0

我绝不是id3的专家,但是,我最近一直在图书馆工作。您未指定操作系统。我几乎专门使用Linux。我一直在使用的一些工具可能对您有用,例如id3info(CLI)和kid3-qt(qt KDE id3)。后者很有趣。我不确定它是否能满足您的需求,但它确实显示了很多信息,至少可以为您提供一些您似乎正在寻找的东西。如果您正在寻找一种更便携的工具,那么似乎可以让您找到的所有东西都是一个称为mid3v2的python工具。我刚刚检查了一下,它有一个参数--list-raw,这似乎非常有用!


谢谢,但是id3info和kid3-qt都不执行我想要的操作,它们仅显示格式化的值。实际上,id3info根本无法识别ID3v2.4标签。mid3v2只是Mutagen的接口,这是标签支持方面最好的接口之一,但工具或Mutagen库本身都不能为我提供有关原始结构的足够信息-尽管到目前为止看起来还不错。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.