Album art adder II
After a couple of hours wasting my time, and then finding out the documentation for os.walk is ‘a little’ incomplete, here’s an improved version:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
#!/usr/bin/python # -*- coding: UTF-8 -*- from mutagen.flac import FLAC from mutagen.mp3 import MP3 from mutagen.id3 import ID3, APIC, error from mutagen.easyid3 import EasyID3 import urllib2,urllib, os, sys from xml.dom import minidom mainenc = sys.getdefaultencoding() def getImage(artist,track): try: req = urllib2.Request(url='http://ws.audioscrobbler.com/2.0/?', data=urllib.urlencode({ 'method':'track.getinfo', 'api_key':'b25b959554ed76058ac220b7b2e0a026', 'artist':(artist).encode('utf-8'), 'track':(track).encode('utf-8'), 'autocorrect':1 })) f = urllib2.urlopen(req) xml = f.read() except: print "Failed @ %s - %s" % (artist.encode(mainenc,'ignore'),track.encode(mainenc,'ignore')) return None nodes = minidom.parseString(xml).childNodes try: url = nodes[0].getElementsByTagName('image')[-1].childNodes[0].toxml() except Exception, e: print "Nothing found for %s" % track.encode(mainenc,'ignore') return None req = urllib2.Request(url=url) u = urllib2.urlopen(req) return u folder = unicode(raw_input("Podaj swoj folder muzyki (np. D:muzyka):n")) for root, dirs, files in os.walk(folder): print root.encode(mainenc,'ignore') for i in files: if "folder.jpg" in files or "Folder.jpg" in files: if os.path.getsize(root+"\\"+"folder.jpg") > 0: break ext = i.split('.')[-1].lower() if ext in ['flac','mp3']: try: if ext == 'flac': audio = FLAC(root+"\\"+i) elif ext == 'mp3': audio = MP3(root+"\\"+i,ID3=EasyID3) except Exception, e: print e continue if audio: img = getImage(audio['artist'][0],audio['title'][0]) if img is not None: print "Writing to %s" % root.encode(mainenc,'ignore') f= open(root+'\\folder.jpg','wb') f.write(img.read()) f.close() break print "Done" |
+ bonus, executable version