Ja, du hast recht, das wusste ich vorher. Aber ich suche nach einem einfacheren Weg, falls es einen gibt.
Bakhtiyor
3
Hier ist ein Python-Skript, um dasselbe zu tun, dh Namen und Speicherorte von Internetradiosendern aus der von Rhythmbox verwendeten XML-Datenbank zu extrahieren:
import xml.sax.handlerimport xml.saximport pprintclassRhythmboxPlaylistHandler(xml.sax.handler.ContentHandler):def __init__(self):
self.inRTitle =False
self.inRLocation =False
self.entrytype ="undefined"
self.titlebuffer =""
self.locationbuffer =""
self.radiostations ={}def startElement(self, name, attributes):if name =="entry":
self.entrytype = attributes["type"]# we're interested in type="iradio"elif name =="title"and self.entrytype =="iradio":
self.inRTitle =Trueelif name =="location"and self.entrytype =="iradio":
self.inRLocation =Truedef characters(self, data):if self.inRTitle:
self.titlebuffer += dataelif self.inRLocation:
self.locationbuffer += datadef endElement(self, name):if name =="title":
self.inRTitle =Falseelif name =="location":
self.inRLocation =Falseelif name =="entry"and self.entrytype =="iradio":
self.radiostations[self.titlebuffer]= self.locationbuffer
self.titlebuffer=""
self.locationbuffer=""
parser = xml.sax.make_parser()
handler =RhythmboxPlaylistHandler()
parser.setContentHandler(handler)
parser.parse("work_copy_of_rhythmdb.xml")
pprint.pprint(handler.radiostations)
rstations=handler.radiostations
rskeys=[key for key in rstations]
rskeys.sort()
ofile=open("rhytmbox_current_internet_radiostations.txt","w")
ofile.write("# {0:41} --> {1}\r\n".format('radio station name','location'))
ofile.write("#"+120*'-'+"\r\n")for key in rskeys:
ofile.write("{0:45} --> {1}\r\n".format(key,rstations[key]))
ofile.close()
Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Marco Ceppi
Das tut mir leid. Ich habe es gerade bearbeitet, um die Hauptidee aufzunehmen. (Danke für den Link. Ich hatte Angst, dass das erneute Veröffentlichen anderer Informationen unnötigerweise zu einer Duplizierung von Webdaten führen würde.)
colan
0
Lesen ~/.local/share/rhythmbox/rhythmdb.xml
Sie zum Exportieren die Datei, wenn Sie importieren möchten. Erstellen Sie eine M3U-Datei-Wiedergabeliste wie folgt :
#EXTM3U
#EXTINF:-1,Quran - Eman City Quran & Islam Talk
http://206.72.199.180:9990/;stream.nsv
#EXTINF:-1,Quran - Radio Quraan
http://66.45.232.131:9994/;stream.nsv
#EXTINF:-1,Quran - Allahu Akbar Radio
http://66.45.232.1ls32:10196/;stream.nsv
#EXTINF:-1,Quran - izlam
http://66.45.232.133:9998/;stream.nsv
#EXTINF:-1,Quran - tafsir Al Sheikh Mohammad Ratib Al Nabulsi & Sheikh Muhammad Mitwalli Al Sharawi
http://206.72.199.179:9992/;stream.nsv
#EXTINF:-1,Quran - radioislamico
http://66.45.232.134:9996/;stream.nsv
Antworten:
rhythmbox speichert Informationen zu allen Musikdateien in ~ / .local / share / rhythmbox / rhythmdb.xml
Einträge zu Radiostationen beginnen mit "Eintragsart iradio".
quelle
Hier ist ein Python-Skript, um dasselbe zu tun, dh Namen und Speicherorte von Internetradiosendern aus der von Rhythmbox verwendeten XML-Datenbank zu extrahieren:
(Ich habe mit diesem Tutorial zum Arbeiten mit XML-Datenbanken in Python begonnen: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )
quelle
Mit xmlstarlet können Sie die wesentlichen Daten aus Ihrer XML-Datei abrufen. Siehe hier für Details:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
quelle
Lesen
~/.local/share/rhythmbox/rhythmdb.xml
Sie zum Exportieren die Datei, wenn Sie importieren möchten. Erstellen Sie eine M3U-Datei-Wiedergabeliste wie folgt :
und öffne es mit Rhythmusbox
quelle