有人可以分享使用mutagen写文件的好例子吗?

19 投票
3 回答
31307 浏览
提问于 2025-04-16 06:13

正如标题所问——有没有人能提供一个使用Mutagen Python ID3库来写入.mp3文件的好例子?

我特别想添加光盘/曲目编号的信息,不过编辑标题和艺术家的例子也会很有帮助。

谢谢!
/YGA

3 个回答

6

一个简单的方法是:

from mutagen.easyid3 import EasyID3
audio = EasyID3(mp3_filename_import)
audio['title'] = "Title"
audio['artist'] = "Artist"
audio['album'] = "Album"
audio['composer'] = "" # empty
audio.save()

如果标签没有出现,那就把最后一行改成:

audio.save(v2_version=3)
6

你有没有在网上看看例子?这些例子应该能帮到你。

[编辑:]

Mutagen的教程挺不错的,所以我就没加更多信息。使用dir()这个函数可以看到大部分的细节。

如果你想用mutagen给mp3设置专辑封面

用mutagen嵌入歌词

一个例子

from mutagen.mp3 import MP3
from mutagen.easyid3 import EasyID3
import mutagen.id3

filename = 'xxx.mp3'

# Example which shows how to automatically add tags to an MP3 using EasyID3

mp3file = MP3(filename, ID3=EasyID3)

try:
    mp3file.add_tags(ID3=EasyID3)
except mutagen.id3.error:
    print("has tags")

mp3file['title'] = 'Newly tagged'
mp3file.save()
print(mp3file.pprint())
27

这是我之前写的一个脚本,用来把歌词嵌入到MP3文件里的:

http://code.activestate.com/recipes/577138-embed-lyrics-into-mp3-files-using-mutagen-uslt-tag/

相关的部分是:

from mutagen.id3 import ID3NoHeaderError
from mutagen.id3 import ID3, TIT2, TALB, TPE1, TPE2, COMM, TCOM, TCON, TDRC, TRCK

# Read the ID3 tag or create one if not present
try: 
    tags = ID3(fname)
except ID3NoHeaderError:
    print("Adding ID3 header")
    tags = ID3()

tags["TIT2"] = TIT2(encoding=3, text=title)
tags["TALB"] = TALB(encoding=3, text=u'mutagen Album Name')
tags["TPE2"] = TPE2(encoding=3, text=u'mutagen Band')
tags["COMM"] = COMM(encoding=3, lang=u'eng', desc='desc', text=u'mutagen comment')
tags["TPE1"] = TPE1(encoding=3, text=u'mutagen Artist')
tags["TCOM"] = TCOM(encoding=3, text=u'mutagen Composer')
tags["TCON"] = TCON(encoding=3, text=u'mutagen Genre')
tags["TDRC"] = TDRC(encoding=3, text=u'2010')
tags["TRCK"] = TRCK(encoding=3, text=u'track_number')

tags.save(fname)

另外推荐:

撰写回答