mutagen 或 eyed3:识别并读取 ID3v1

mutagen or eyed3: identify and read ID3v1

我的大部分 MP3 文件都标有 ID3v1 和 ID3v2。我想编写一个脚本来读取文件并识别 ID3v1 版本,而不考虑其他 ID3 版本。

我正在努力处理以下代码 (eyed3)。如果 ID3v1 是唯一使用的版本,isV1 只是 True。但是代码打印

V1 > False

V2 > True

对于 ID3v1 和 ID3v2 的文件。

代码使用 eyed3 但我也接受 mutagen(但找不到如何编码的示例)。

import eyed3
a = eyed3.load("song.mp3")
print("V1", a.tag.isV1())
print("V2", a.tag.isV2())
  • eyed3.id.tag.parse() 中,您可以看到如果找到 ID3v2,则不再加载潜在的 ID3v1。
  • eyed3.core.load() 中,您可以看到该函数不仅有 1 个文件名参数,还有第二个要 find/load.
  • 的标记版本
  • 可在 eyed3.id3 中找到该参数的可用常量 - 您很可能对任何版本的 ID3v1 和任何版本的 ID3v2 感兴趣。

结合这些知识,您必须加载文件两次并对其进行操作:

v1 = eyed3.load("song.mp3", ID3_V1)
print("V1", v1.tag.isV1())

v2 = eyed3.load("song.mp3", ID3_V2)
print("V2", v2.tag.isV2())