Wie importiere / exportiere ich eine Radiosenderliste von Rhythmbox?


10

Ist es eine Möglichkeit, die Radiosenderliste von Rhythmbox zu importieren / exportieren?

Wenn nicht, können Sie mir bitte einen guten Musikplayer vorschlagen, der ähnliche Funktionen wie Rhythmbox hat?

Vielen Dank!


1
Du meinst Radiosender?
Javier Gonzalez

Ja, ich meine Radiosender
Bakhtiyor

Antworten:


7

rhythmbox speichert Informationen zu allen Musikdateien in ~ / .local / share / rhythmbox / rhythmdb.xml

Einträge zu Radiostationen beginnen mit "Eintragsart iradio".


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.handler
import xml.sax
import pprint

class RhythmboxPlaylistHandler(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 = True
        elif name == "location" and self.entrytype == "iradio":
            self.inRLocation = True

    def characters(self, data):
        if self.inRTitle:
            self.titlebuffer += data
        elif self.inRLocation:
            self.locationbuffer += data

    def endElement(self, name):
        if name == "title":
            self.inRTitle = False
        elif name == "location":
            self.inRLocation = False
        elif 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()

(Ich habe mit diesem Tutorial zum Arbeiten mit XML-Datenbanken in Python begonnen: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )


2

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


schön auf xmlstarlet Tutorial für dieses zeigen
Sabacon

1
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

und öffne es mit Rhythmusbox

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.