Sonntag, 17. Februar 2013
How to store images in mp3 files using eyeD3
(This post refers to version 0.7.1 of eyeD3)
eyeD3 is a powerful python utility for manipulating id3 tags from the command line, but it also exposes these function as a python module.
Unfortunately the documentation on the site on how to use it as a python module is sparse, although it covers most use cases:
import eyed3
audiofile = eyed3.load("song.mp3")
audiofile.tag.artist = u"Nobunny"
audiofile.tag.album = u"Love Visions"
audiofile.tag.title = u"I Am a Girlfriend"
audiofile.tag.track_num = 4
audiofile.tag.save()
Information on how to access images are not readily available. But being open source, you can look at the source code to find out:
Example on how to append an image
import eyed3
# load tags
audiofile = eyed3.load("song.mp3")
# read image into memory
imagedata = open("test.jpg","rb").read()
# append image to tags
audiofile.tag.images.set(3,imagedata,"image/jpeg",u"you can put a description here")
# write it back
audiofile.tag.save()
The constant 3 means Front Cover, 4 means Back Cover, 0 for other.
The complete list can found at eyed3/id3/frames.py
"image/jpeg" is the mime type.
u"...” is a description, which must be provided in a unicode string. EasyTAG e.g. stores the original file name in this field.
Example on how to access the images
import eyed3
# load tags
audiofile = eyed3.load("song.mp3")
# iterate over the images
for imageinfo in audiofile.tag.images:
...
Amoung the infos available via imageinfo are:
.image_data - image binary data
.mime_type - e.g. “image/jpeg”
.picture_type - 3, 4, 0, see above
.description - the description field
You can access the imageinfo also like this:
audiofile.tag.images[x]
Where x is the index into an array starting with 0. Eventually you will get an out of range exception.
Abonnieren
Posts (Atom)