以下代码仅供业余爱好参考,不涉及音频专业知识。
说明: 听歌时,想着修改一下mp3的标签信息,但是歌曲很多不可能一个个的修改。
下载了一个Mp3tag软件,添加封面还是可以,但是批量修改标题只能清空等。我希望将标题改成与文件名一样,所以想到这个。
eyed3运行好像有问题,总是提示:‘NoneType’ object has no ‘tag’
eyed3官网:https://eyed3.readthedocs.io/en/latest/
eyed3安装:pip install eyeD3
,pip 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)