開發與維運

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流。
71257933_202012081545270691689317.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

Leave a Reply

Your email address will not be published. Required fields are marked *