有没有维护好的包可以用来检索和设置MP3 ID3的元数据?
发布于 2008-09-19 14:30:42
前几天我使用eyeD3取得了很大的成功。我发现它可以将图片添加到ID3标签中,这是我看过的其他模块所不能做到的,你必须使用pip安装,或者从源文件夹下载tar并执行python setup.py install
。
下面是来自该网站的相关示例。
读取包含v1或v2标记信息的mp3文件的内容:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
读取mp3文件(曲目长度、比特率等)并访问它的标签:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
可以选择具体的标签版本:
tag.link("/some/file.mp3", eyeD3.ID3_V2)
tag.link("/some/file.mp3", eyeD3.ID3_V1)
tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION) # The default.
或者,您可以遍历原始框架:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
标签链接到文件后,可以对其进行修改和保存:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
如果链接的标签是v2,并且您想将其另存为v1:
tag.update(eyeD3.ID3_V1_1)
读入标记并将其从文件中删除:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
添加新标签:
tag = eyeD3.Tag()
tag.link('/some/file.mp3') # no tag in this file, link returned False
tag.header.setVersion(eyeD3.ID3_V2_3)
tag.setArtist('Fugazi')
tag.update()
发布于 2008-08-14 09:46:21
我以前用过mutagen来编辑媒体文件中的标签。mutagen的好处是它可以处理其他格式,如mp4,FLAC等。我已经用这个API写了几个脚本,取得了很大的成功。
发布于 2016-01-24 08:07:25
eyed3
的一个问题是它会对常见的MP3文件抛出NotImplementedError("Unable to write ID3 v2.2")
。
根据我的经验,mutagen
类EasyID3
的工作更可靠。示例:
from mutagen.easyid3 import EasyID3
audio = EasyID3("example.mp3")
audio['title'] = u"Example Title"
audio['artist'] = u"Me"
audio['album'] = u"My album"
audio['composer'] = u"" # clear
audio.save()
所有其他标签都可以通过这种方式访问和保存,这将用于大多数目的。更多信息可以在Mutagen Tutorial中找到。
https://stackoverflow.com/questions/8948
复制相似问题