介紹
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流。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5iYjRWM1QmYwIDN1MDNmVTOwIDZ0kjYllzM5QTYiJDNi9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.jpg)
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