目 录CONTENT

文章目录

【Python】Mutagen 音频文件处理

EulerBlind
2025-07-01 / 0 评论 / 0 点赞 / 2 阅读 / 0 字
  • Mutagen介绍

    Mutagen是一个Python库,用于处理音频文件元数据。它可以读取并写入popular音频格式的元数据,比如MP3,Ogg Vorbis,FLAC,WAV等。

    主要功能

    1. 读取和写入音频文件的元数据,比如艺术家,专辑,标题,流派等。
    2. 支持ID3v1,ID3v2,Vorbis评论和FLAC元数据块。
    3. 易于在Python中使用,有直观的API。
    4. 跨平台,可以在Windows,MacOS和Linux上使用。

    使用示例

    1. 读取MP3文件的元数据:
    import mutagen
    audio = mutagen.File("song.mp3", easy=True)
    print(audio["artist"])
    print(audio["album"])
    

    点击并拖拽以移动

    1. 修改并保存MP3文件的元数据:
    audio["artist"] = "New Artist"
    audio["album"] = "New Album"
    audio.save()
    

    点击并拖拽以移动

    1. 删除Vorbis评论中的某个元数据字段:
    audio = mutagen.File("song.ogg", easy=True)
    del audio["comment"]["genre"]
    audio.save()
    

    点击并拖拽以移动

    1. 将FLAC文件转换为WAV,并复制其元数据:
    flac = mutagen.File("song.flac", easy=True)
    flac.delete()  # 删除FLAC音频流
    flac.save(filename="song.wav")  # 将FLAC容器保存为WAV格式
    

    点击并拖拽以移动

    1. 读取MP3文件的专辑封面图片:
    audio = mutagen.File('song.mp3', easy=True)
    pic = audio.tags.getall('APIC')[0]
    with open('cover.jpg', 'wb') as f:
        f.write(pic.data)
    

    点击并拖拽以移动

    1. 为Ogg Vorbis文件添加专辑封面图片:
    audio = mutagen.File('song.ogg', easy=True)
    with open('cover.jpg', 'rb') as f:
        data = f.read()
    audio.tags.add(
        mutagen.id3.APIC(
            encoding=3,
            mime='image/jpeg',
            type=3,
            desc='Cover',
            data=data
        )
    )
    audio.save()
    

    点击并拖拽以移动

    1. 将MP3文件的曲风从“Rock”修改为“Pop”:
    audio = mutagen.File('song.mp3', easy=True)
    audio['genre'] = 'Pop'
    audio.save()
    

    点击并拖拽以移动

    1. 向FLAC文件添加多个曲风,如“Rock”和“Alternative”:
    audio = mutagen.File('song.flac', easy=True)
    audio.tags.add(mutagen.id3.TCON(encoding=0, text=['Rock', 'Alternative']))
    audio.save()
    

    点击并拖拽以移动

    1. **删除M4A文件的标题(title)元数据: **

      audio = mutagen.File('song.m4a', easy=True)
      del audio['\\xa9nam']
      audio.save()
      

      点击并拖拽以移动

0

评论区