Hallo VDR'ler,
ich habe das music-Plugin aktiviert und war positiv überrascht, dass der Download von Lyrics als Menüpunkt vorgesehen ist. Leider funktionierte es nicht und ich habe mich auf die Suche nach der Lösung gemacht, hier im Forum und auch im Web. Zuständig für den Download ist das Script music_getlyrics.py in /etc/vdr/plugins/music/scripts. Im Script wird die Webseite von http://www.lyrc.com.ar/ als Quelle herangezogen. Ich vermute, dass zum Zeitpunkt der Programmierung die genannte Webseite noch keinen Passwort-Zugang besaß. Nun ist es aber so und der Download kann sicher nicht mit dem Script erfolgen, da ich nach Durchsicht des Codes keine Passage gefunden habe, in der das Einloggen auf lyrc.com.ar vorgesehen ist.
Außerdem habe ich versucht, durch Umstricken des Scripts einen Download bei lyricsmania und lyricsdownload hinzubekommen. Leider klappt das parsen der Seiten nicht und das Script kann den Liedtext nicht aus dem HTML-Code extrahieren. Ich habe einen Teil des Scrits in den Text kopiert, einen Dateianhang mit ...py (thon) kann ich nicht beifügen.
##############
# LYRC.COM.AR
# http://lyrc.com.ar/tema.php?songname=SONGTITLE&artist=ARTISTNAME
##################################################################
def lyrc():
found=1
global nbimage
if (debug>0):
print "[Lyrc] Searching on lyrc.com.ar ("+ARTIST+"-"+TITLE+")"
URL="http://lyrc.com.ar/en/tema1en.php?artist="+string.replace(ARTIST," ","%20")+"&songname="+string.replace(TITLE," ","%20B")
# URL="http://lyricsmania.com/"+string.replace(TITLE," ","%20")+"_lyrics_"+string.replace(ARTIST," ","%20")+".html
# URL="http://www.lyricsdownload.com/
conn = urllib.urlopen(URL)
data = conn.read()
conn.close()
s = re.search("<message>nothing found</message>", data)
if (s):
found=0
if (found==0):
#Search the links
f = open (FILENAME+".lyrics.xml", 'w')
f.close ()
if (debug>0):
print "[Lyrc] --> lyrics not found ("+ARTIST+"-"+TITLE+")"
sys.exit(0)
else:
# Are there multiple results?
s = re.findall("<song>", data)
if (len(s)>1 and FORCE_RETRIEVE==0):
#YES!
f = open (FILENAME+".lyrics.xml", 'w')
# data=string.replace(data,"\n<","<") #You shouldn't go do linefeed like that in XML!!!
# data=string.replace(data,"&","&")
f.write (data)
f.close ()
if (debug>0):
print "[Lyrc] --> multiple lyrics found ("+ARTIST+"-"+TITLE+")"
else:
#NO, get lyrics
URL="http://lyrc.com.ar/en/tema1en.php?artist="+string.replace(ARTIST," ","%20")+"&songname="+string.replace(TITLE," ","%20")+"&act=1"
conn = urllib.urlopen(URL)
data = conn.read()
conn.close()
f = open (FILENAME+".lyrics.xml", 'w')
# data=string.replace(data,"\n<","<") #You shouldn't go do linefeed like that in XML!!!
# data=string.replace(data,"&","&")
# data=string.replace(data,"","")
f.write (data)
f.close ()
final_lyrics=parse_lyrics(data)
final_lyrics=string.replace(final_lyrics,"<br />","")
if len(final_lyrics)< 2:
f = open (LYRICSDIR+"temp.lyrics", 'w')
f.write ("Page for song found, but its empty")
f.close ()
print "Page for song found, but its empty"
else:
f = open (LYRICSDIR+"temp.lyrics", 'w')
f.write (final_lyrics)
f.close ()
print final_lyrics
if (debug>0):
print "[Lyrc] --> lyrics found ("+ARTIST+"-"+TITLE+")"
Wer kann mir da denn weiterhelfen? Ich finde die Funktion echt cool...
Danke schon 'mal,
Chris
P.S. Zum Schluss ist mir noch aufgefallen, dass im Forum ein ":)" oder ":(" in Smilies umgeändert werden.