<p>我不认为可以使用<code>EasyID3</code>嵌入相册,但可以使用<code>ID3</code>。在</p>
<p>您可以使用<code>ID3</code>嵌入相册,如下所示:</p>
<pre><code>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()
</code></pre>
<p>如果性能不是您主要关心的问题,可以使用<code>EasyID3</code>保存文本元数据,然后使用<code>ID3</code>再次加载音乐文件以嵌入唱片集。否则,您可以完全使用<code>ID3</code>。在</p>
<p>所以,第一种情况下的代码是:</p>
^{pr2}$
<p>在第二种情况下:</p>
<pre><code>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()
</code></pre>
<p>注意:您也可以使用<code>urllib2</code>直接嵌入相册,而不必先将其保存在磁盘上。示例:</p>
<pre><code>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()
</code></pre>