需求是目前手里有幾千個mp3文件椒涯,歌曲的名字、歌手回梧、專輯名废岂、專輯封面等數(shù)據(jù)也都有铡溪,但是這些數(shù)據(jù)都是分開的,沒有寫入mp3中泪喊,需要用代碼批量修改mp3的元數(shù)據(jù)棕硫。
一、由于蘋果沒有mp3的編輯版權(quán)袒啼,用AVFoundation只能讀取mp3的元數(shù)據(jù)哈扮,不能進行修改。其他像mp4等格式的元數(shù)據(jù)是可以編輯的蚓再,可參考AVFoundation之元數(shù)據(jù)操作進行編輯滑肉。
二、如果只需要編輯少量的mp3元數(shù)據(jù)摘仅,可以使用一些mac平臺的工具靶庙,比如:Mp3tag、Meta等娃属。
三六荒、找來找去只找到通過Python用mutagen庫修改mp3元數(shù)據(jù)這一種方式。步驟如下:
- 1.安裝pip
curl https://bootstrap.pypa.io/pip/get-pip.py -o get-pip.py
sudo python3 get-pip.py
- 2.安裝mutagen
pip install mutagen
- 3.編輯mp3元數(shù)據(jù)(以下四種方式親測都可行)
import mutagen
from mutagen.id3 import ID3, APIC, TIT2, TPE1, TALB
audio = mutagen.File('/Users/mac/Desktop/6005661JACL2.mp3')
audio['TIT2'] = TIT2(encoding=3, text='歌名')
audio['TPE1'] = TPE1(encoding=3, text='歌手')
audio['TALB'] = TALB(encoding=3, text='專輯')
with open('/Users/mac/Desktop/6005661JACL2.jpeg', 'rb') as image:
audio['APIC'] = APIC(encoding=3, mime='image/jpeg', type=3, desc=u'Cover', data=image.read())
audio.save()
from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, TIT2, TPE1, TALB
audio = MP3('/Users/mac/Desktop/6005661JACL2.mp3')
audio['TIT2'] = TIT2(encoding=3, text='歌名')
audio['TPE1'] = TPE1(encoding=3, text='歌手')
audio['TALB'] = TALB(encoding=3, text='專輯')
with open('/Users/mac/Desktop/6005661JACL2.jpeg', 'rb') as image:
audio['APIC'] = APIC(encoding=3, mime='image/jpeg', type=3, desc=u'Cover', data=image.read())
audio.save()
from mutagen.id3 import ID3, APIC, TIT2, TPE1, TALB
audio = ID3('/Users/mac/Desktop/6005661JACL2.mp3')
audio['TIT2'] = TIT2(encoding=3, text='歌名')
audio['TPE1'] = TPE1(encoding=3, text='歌手')
audio['TALB'] = TALB(encoding=3, text='專輯')
with open('/Users/mac/Desktop/6005661JACL2.jpeg', 'rb') as image:
audio['APIC'] = APIC(encoding=3, mime='image/jpeg', type=3, desc=u'Cover', data=image.read())
audio.save()
from mutagen.easyid3 import EasyID3
audio = EasyID3('/Users/mac/Desktop/6005661JACL2.mp3')
audio['title'] = '歌名'
audio['artist'] = '歌手'
audio['album'] = '專輯'
audio.save()