天天看點

mutagen-處理音頻中繼資料的Python子產品介紹特點安裝執行個體

介紹

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-處理音頻中繼資料的Python子產品介紹特點安裝執行個體

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