#!/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"