[英]Embed Album Cover to mp3 with Mutagen in Python 3
ID3 。 這是Python 3 API,我不知道如何嵌入圖像,到目前為止,我有更改標簽的地方,
def addMetaData(url, title, artist, album, track):
response = requests.get(url, stream=True)
with open('img.jpg', 'wb') as out_file:
shutil.copyfileobj(response.raw, out_file)
del response
audio = MP3(filename=title+".mp3", ID3 = EasyID3)
audio['artist'] = artist
audio['title'] = title
audio['tracknumber'] = track
audio['album'] = album
audio.save()
我不認為使用EasyID3
嵌入albumart是可能的,但ID3
可以實現。
您可以使用ID3
嵌入albumart,如下所示:
from mutagen.id3 import ID3, APIC
audio = ID3(music_file.mp3)
with open('img.jpg', 'rb') as albumart:
audio['APIC'] = APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
)
audio.save()
如果性能不是您的主要考慮因素,您可以使用EasyID3
保存文本元數據,然后使用ID3
重新加載音樂文件以嵌入albumart。 否則,您可以完全使用ID3
。
那么,第一種情況下的代碼將是:
import requests
import shutil
# you can directly import EasyID3 and ID3
from mutagen.easyid3 import EasyID3
from mutagen.id3 import ID3, APIC
def addMetaData(url, title, artist, album, track):
response = requests.get(url, stream=True)
with open('img.jpg', 'wb') as out_file:
shutil.copyfileobj(response.raw, out_file)
del response
audio = EasyID3(music_file.mp3)
audio['artist'] = artist
audio['title'] = title
audio['tracknumber'] = track
audio['album'] = album
audio.save()
audio = ID3(music_file.mp3)
with open('img.jpg', 'rb') as albumart:
audio['APIC'] = APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
)
audio.save()
在第二種情況:
import requests
import shutil
from mutagen.id3 import ID3, TPE1, TIT2, TRCK, TALB, APIC
def addMetaData(url, title, artist, album, track):
response = requests.get(url, stream=True)
with open('img.jpg', 'wb') as out_file:
shutil.copyfileobj(response.raw, out_file)
del response
audio = ID3(music_file.mp3)
audio['TPE1'] = TPE1(encoding=3, text=artist)
audio['TIT2'] = TALB(encoding=3, text=title)
audio['TRCK'] = TRCK(encoding=3, text=track)
audio['TALB'] = TALB(encoding=3, text=album)
with open('img.jpg', 'rb') as albumart:
audio['APIC'] = APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
)
audio.save()
注意:您也可以使用urllib2
直接嵌入albumart,而不必先將其保存在磁盤上。 例:
import urllib2
from mutagen.id3 import ID3, APIC
audio = ID3(music_file.mp3)
albumart = urllib2.urlopen(url)
audio['APIC'] = APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
)
albumart.close()
audio.save()
您需要更改shutil調用,而不是寫入您打開的文件:
...
response = requests.get(url, stream=True)
with open('img.jpg', 'wb') as out_file:
out_file.write(response.raw)
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.