使用eyeD3从URL嵌入专辑封面

时间:2016-11-09 20:46:05

标签: python metadata id3 eyed3

我正在处理从服务器下载音乐文件然后从URL添加相册图像的python脚本,为此我使用eyeD3 python库我的原始代码。

import eyed3

mySong = eyed3.load('C:\Users\PC\Music\Test.mp3')
mySong.tag.album_artist = u'Artist-Name'
mySong.tag.images.remove(u'')
mySong.tag.images.set(3, 'None', 'https://upload.wikimedia.org/wikipedia/en/6/60/Recovery_Album_Cover.jpg')
mySong.tag.save()

我已经尝试过这个命令的不同版本,它不会返回任何错误,但不会像上面的代码那样嵌入图像,或者返回一条错误消息,说明" ValueError:img_url当没有图像数据时必须不是34。

任何人在eyeD3的这一部分取得任何成功之前我的另一个选择是直接从URL商店下载图像到一个文件夹并从那里嵌入然后删除显然我的其他解决方案会更好。

2 个答案:

答案 0 :(得分:2)

您可以使用urllib2从网址获取图片的图片数据,然后在eyed3中使用。

import urllib2
response = urllib2.urlopen(your image url)  
imagedata = response.read()

import eyed3
file = eyed3.load("song.mp3")
file.tag.images.set(3, imagedata , "image/jpeg" ,u"Description")
file.tag.save()

答案 1 :(得分:0)

使用

mySong.tag.images.set(type_=3, img_data=None, mime_type=None, description=u"you can put a description here", img_url=u"https://upload.wikimedia.org/wikipedia/en/6/60/Recovery_Album_Cover.jpg")

说明:

mySong.tag.images.set正在调用set中定义的班级ImagesAccessor的{​​{1}}函数。

签名如下:

src/eyed3/id3/tag.py