首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用MP3访问Python元数据

使用MP3访问Python元数据
EN

Stack Overflow用户
提问于 2008-08-12 15:16:01
回答 12查看 135.8K关注 0票数 141

有没有维护好的包可以用来检索和设置MP3 ID3的元数据?

EN

回答 12

Stack Overflow用户

发布于 2008-09-19 14:30:42

前几天我使用eyeD3取得了很大的成功。我发现它可以将图片添加到ID3标签中,这是我看过的其他模块所不能做到的,你必须使用pip安装,或者从源文件夹下载tar并执行python setup.py install

下面是来自该网站的相关示例。

读取包含v1或v2标记信息的mp3文件的内容:

代码语言:javascript
复制
 import eyeD3
 tag = eyeD3.Tag()
 tag.link("/some/file.mp3")
 print tag.getArtist()
 print tag.getAlbum()
 print tag.getTitle()

读取mp3文件(曲目长度、比特率等)并访问它的标签:

代码语言:javascript
复制
if eyeD3.isMp3File(f):
     audioFile = eyeD3.Mp3AudioFile(f)
     tag = audioFile.getTag()

可以选择具体的标签版本:

代码语言:javascript
复制
 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.

或者,您可以遍历原始框架:

代码语言:javascript
复制
 tag = eyeD3.Tag()
 tag.link("/some/file.mp3")
 for frame in tag.frames:
    print frame

标签链接到文件后,可以对其进行修改和保存:

代码语言:javascript
复制
 tag.setArtist(u"Cro-Mags")
 tag.setAlbum(u"Age of Quarrel")
 tag.update()

如果链接的标签是v2,并且您想将其另存为v1:

代码语言:javascript
复制
 tag.update(eyeD3.ID3_V1_1)

读入标记并将其从文件中删除:

代码语言:javascript
复制
 tag.link("/some/file.mp3")
 tag.remove()
 tag.update()

添加新标签:

代码语言:javascript
复制
 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()
票数 122
EN

Stack Overflow用户

发布于 2008-08-14 09:46:21

我以前用过mutagen来编辑媒体文件中的标签。mutagen的好处是它可以处理其他格式,如mp4,FLAC等。我已经用这个API写了几个脚本,取得了很大的成功。

票数 38
EN

Stack Overflow用户

发布于 2016-01-24 08:07:25

eyed3的一个问题是它会对常见的MP3文件抛出NotImplementedError("Unable to write ID3 v2.2")

根据我的经验,mutagenEasyID3的工作更可靠。示例:

代码语言:javascript
复制
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中找到。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档