Playlist Text-Stream auslesen: Hilfe benötigt

Moinsen,

na, da habe ich ja was losgetreten, nochmal herzlichen Dank an alle Professionals. Also mich interessiert das aus musikwissenschaftlicher Sicht, mir geht es um eine Analyse der Musik dieser Zeit. Die Kompositionen haben eine bestimmte Akkordik, die einen bestimmten Flair erzeugen, da bin hinter her das rauszufuddeln. Natürlich ist auch viel Mist bei dieser Mucke auf Weimarradio dabei. Aber grösstenteils ist es halt sehr interessant. Besonders, da ich auch feststellen musste, dass diese Art von Musik wohl überall in Europa und USA zu hören war und keine „deutscheigene“ war. Jeder hat von jedem geklaut.

Nun, ich kann die Stücke mit ReplayMusic als Analog Audio-Stream von der Soundkarte aufnehmen (was auch schon mal Störungen mit aufnimmt, also nicht so dolle) und dann als File1, File 2…File n auf der Platte speichern. Die Files müssen dann alle mit den richtigen Titeln von Hand umbenannt werden, damit man noch weiss, was das für ein Musikstück war. Macht zwar Arbeit, aber dank Eurer Hilfe bringt das ganz schön weiter. Mann muss sich nur einen Titel merken bzw. identifizieren und die anderen findet man dann.

Die Files 1 …n werden mit Unrzeit auf der Festplatte gespeichert; vielleicht könnte man noch zu dem jeweiligen Listen-Titel-Info einen Timestamp dazufügen.
Übrigens- von wegen GEMA, sind die uralten Stücke fast alle gemeinfrei und solang man diese auch nicht weiterverkauft etc. gibts da keine Probleme.

VG und thanks

Morgen,

vielleicht könnte man noch zu dem jeweiligen Listen-Titel-Info einen :Timestamp dazufügen.

Hab das Python Skript mal so angepasst, dass vor den Lieddaten das Datum und die Zeit gespeichert werden.

from urllib.request import urlopen
import xml.dom.minidom
from time import sleep
from datetime import datetime

def getText(nodelist):
 rc = ""
 for node in nodelist:
 if node.nodeType == node.TEXT\_NODE:
 rc = rc + node.data
 return rc

def getXML(station):
 #Got url to playlist in xml format by looking for the string xml in the javascript file "pls.js" on live365.com server manually
 response = urlopen("http://www.live365.com/pls/front?handler=playlist&cmd=view&viewType=xml&handle="+station)
 xmlTxt = response.read()
 xmlTxt = str(xmlTxt,"utf-8")
 #print(xmlTxt) #DEBUG
 return xmlTxt

def getNextSong(xmlTxt):
 dom = xml.dom.minidom.parseString(xmlTxt)
 entries = dom.getElementsByTagName("PlaylistEntry")
 artists = entries[0].getElementsByTagName("Artist")
 titles = entries[0].getElementsByTagName("Title")
 albums = entries[0].getElementsByTagName("Album")
 lengths = entries[0].getElementsByTagName("Seconds")
 artist = getText(artists[0].childNodes)
 title = getText(titles[0].childNodes)
 album = getText(albums[0].childNodes)
 length = getText(lengths[0].childNodes)
 if title == "NONE":
 return (None,)
 elif artist == "" or artist == "ID/PSA":
 return (None,) 
 else:
 return (artist, title, album, length)

def getWaitTime(xmlTxt):
 dom = xml.dom.minidom.parseString(xmlTxt)
 entries = dom.getElementsByTagName("Refresh")
 wait = getText(entries[0].childNodes)
 return int(wait)

def main():
 #station = "weimarrundfunk"
 station = input("Name of station: ")
 out = open("playlist.txt","a")
 while True: #mainloop
 xmlTxt = getXML(station)
 timeTillNextSong = getWaitTime(xmlTxt)
 song = getNextSong(xmlTxt)
 now = datetime.now()
 dattime = "%d.%d.%d %d:%d:%d" % (now.day, now.month, now.year, now.hour, now.minute, now.second)
 if song[0] != None:
 out.write(dattime + "\t" + song[0] + " - " + song[1] + "[" + song[3] + "s] - " + song[2] + "\n")
 out.flush()
 #print(playlist)
 print("Wait for",timeTillNextSong+10,"seconds.")
 sleep(timeTillNextSong + 10)
 out.close()

if \_\_name\_\_ == "\_\_main\_\_":
 main()

Liebe Grüße.
Alex