前言
上一篇文章【Python实用技巧】如何批量修改歌曲信息写了如何使用EyeD3库来批量修改歌曲的信息,同时也提到了用EyeD3库的局限性只能修改MP文件的属性,今天就用另一个Mutagen来进行歌曲信息的读取和修改。
1 Mutagen库概述
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.7+(CPython 和 PyPy)一起工作,并且没有 Python 标准库之外的依赖项。Mutagen 在GPL 版本 2 或更高版本下获得许可。
详细信息可以见官网。
2 安装Mutagen
要使用Mutagen,您需要先安装它。您可以通过pip来安装Mutagen,方法如下:
pip install mutagen
也可以从GitHub上获取:
$ git clone https://github.com/quodlibet/mutagen.git
3 读取本地音频文件
3.1 导入需要的模块
导入需要使用的模块:
import os
import mutagen
3.2 读取歌曲属性信息
读取并打印歌曲的属性信息:
filename = '无问_毛不易.mp3'
print('File:', filename)
audio = mutagen.File(filename)
print(audio.tags)
3.3 逐条打印歌曲信息:
filename = '无问_毛不易.mp3'
print('File:', filename)
audio = mutagen.File(filename)
print(audio.tags["TALB"].text[0])
print(audio.tags["TPE2"].text[0])
print(audio.tags["TIT2"].text[0])
print(audio.tags["TCON"].text[0])
print(audio.tags["TPE1"].text[0])
print(audio.tags["TDRC"].text[0])
4 修改歌曲属性信息
print('修改前标题', audio.tags["TIT2"].text[0])
audio["TIT2"] = TIT2(encoding=3, text="无问02")
audio.save()
print('修改后标题',audio.tags["TIT2"].text[0])
剩下的就是把原来代码中EyeD3部分的内容替换为Mutagen库的内容即可。
5 更多功能
除了上述功能之外,Mutagen还提供了许多其他有用的功能,例如:
- 添加、删除和编辑元数据标签。
- 读取和编辑音频文件的音频流。
- 读取和编辑音频文件的音频帧。
- 处理APIC标签(用于嵌入专辑封面)。
- 处理USLT标签(用于嵌入歌词)。