介紹
Mutagen是處理音頻元數據的Python模塊。它支持ASF,FLAC,MP4,Monkey's Audio,MP3,Musepack,Ogg Opus,Ogg FLAC,Ogg Speex,Ogg Theora,Ogg Vorbis,True Audio,WavPack,OptimFROG和AIFF音頻文件。支持所有版本的ID3v2,並解析所有標準的ID3v2.4幀。它可以讀取Xing標頭,以準確計算MP3的比特率和長度。無論音頻格式如何,都可以編輯ID3和APEv2標籤。它還可以在單個數據包/頁面級別上處理Ogg流。
Mutagen可在Linux,Windows和macOS上使用Python 3.6+(CPython和PyPy),並且在Python標準庫之外沒有任何依賴關係。
特點
與大多數處理標籤的程序相比,Quod Libet對標籤庫的要求更高。因此,我們認為有必要自己編寫。
Mutagen有一個簡單的API,在所有標記格式和版本中都大致相同,並且已集成到Python的內置類型和接口中。
可以輕鬆添加新的幀類型和文件格式,並且可以通過擴展它們來更改當前格式的行為。
從一開始就考慮了自由格式鍵,多個值,Unicode和其他高級功能,並且完全支持它們。
涵蓋了所有ID3v2版本和所有ID3v2.4框架,包括諸如POPM或RVA2之類的稀有版本。
我們非常重視自動化測試。所有錯誤修復均通過防止重複發生的測試提交,而新功能則通過完整的測試套件提交。
安裝
python3 -m pip install mutagen 或者下載mutagen的ZIP源文件包。
實例
該File函數獲取任何音頻文件,猜測其類型並返回 FileType實例或None。
>>> import mutagen
>>> mutagen.File("11. The Way It Is.ogg")
{'album': [u'Always Outnumbered, Never Outgunned'],
'title': [u'The Way It Is'], 'artist': [u'The Prodigy'],
'tracktotal': [u'12'], 'albumartist': [u'The Prodigy'],'date': [u'2004'],
'tracknumber': [u'11'],
>>> _.info.pprint()
u'Ogg Vorbis, 346.43 seconds, 499821 bps'
>>>
以下代碼加載一個FLAC文件,設置其標題,打印所有標籤數據,然後保存該文件。
from mutagen.flac import FLAC
audio = FLAC("example.flac")
audio["title"] = u"An example"
audio.pprint()
audio.save()
下面的示例獲取MP3文件的長度和比特率。
from mutagen.mp3 import MP3
audio = MP3("example.mp3")
print(audio.info.length)
print(audio.info.bitrate)
以下內容從MP3文件中刪除ID3標籤。
from mutagen.id3 import ID3
audio = ID3("example.mp3")
audio.delete()
在這裡,我們將Vorbis文件解析為FLAC,這導致文件MutagenError被引發。
>>> import mutagen.flac
>>> mutagen.flac.FLAC("11. The Way It Is.ogg")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/mutagen/_file.py", line 42, in __init__
self.load(filename, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mutagen/flac.py", line 759, in load
self.__check_header(fileobj)
File "/usr/lib/python2.7/dist-packages/mutagen/flac.py", line 867, in __check_header
"%r is not a valid FLAC file" % fileobj.name)
mutagen.flac.FLACNoHeaderError: '11. The Way It Is.ogg' is not a valid FLAC file