Python 使用mutagen批量修改MP3标签信息

以下代码仅供业余爱好参考,不涉及音频专业知识。
说明: 听歌时,想着修改一下mp3的标签信息,但是歌曲很多不可能一个个的修改。
下载了一个Mp3tag软件,添加封面还是可以,但是批量修改标题只能清空等。我希望将标题改成与文件名一样,所以想到这个。

eyed3运行好像有问题,总是提示:‘NoneType’ object has no ‘tag’
eyed3官网:https://eyed3.readthedocs.io/en/latest/
eyed3安装:pip install eyeD3pip instal pyhton-magic-bin==0.4.14

以下代码我运行不通

import eyed3

audiofile = eyed3.load("song.mp3")
audiofile.tag.artist = u"Integrity"
audiofile.tag.album = u"Humanity Is The Devil"
audiofile.tag.album_artist = u"Integrity"
audiofile.tag.title = u"Hollow"
audiofile.tag.track_num = 2

audiofile.tag.save()

mutagen 安装:pip install mutagen
mutagen 官网:https://mutagen.readthedocs.io/en/latest/
以下代码运行OK

#encoding:utf-8
from mutagen.id3 import ID3, APIC, TIT2, TPE1, TALB
import os


def get_mp3(mp3path):
    mp3_list = []
    for dirs, dirnames, files in os.walk(mp3path):
        for file in files:
            if file.endswith('.mp3'):
                mp3_list.append(dirs+'/'+file)
    return mp3_list


def SetMp3Info(mp3file, info):
    songFile = ID3(mp3file)
    songFile['APIC'] = APIC(  # 插入封面
        encoding=3,
        mime='image/jpeg',
        type=3,
        desc=u'Cover',
        data=info['picData']
    )
    songFile['TIT2'] = TIT2(  # 插入歌名
        encoding=3,
        text=info['title']
    )
    songFile['TPE1'] = TPE1(  # 插入第一演奏家、歌手、等
        encoding=3,
        text=info['artist']
    )
    songFile['TALB'] = TALB(  # 插入专辑名
        encoding=3,
        text=info['album']
    )
    songFile.save()


if __name__ == '__main__':
    mp3path = r'C:\Users\xxx\Desktop'
    picPath = r'C:\Users\xxx\Desktop\fanren.png'

    with open(picPath, 'rb') as f:
        picData = f.read()

    mp3_list = get_mp3(mp3path)
    for mp3file in mp3_list:
        newname = mp3file
        songtitle = newname.split('/')[-1][:12]
        info = {'picData': picData,
                'title': songtitle,
                'artist': '刘德华',
                'album': '随便'}
        SetMp3Info(mp3file, info)

你可能感兴趣的:(python基础及相关)