Comment importer / exporter la liste des stations de radio de Rhythmbox?

10

Est-il possible d'importer / exporter la liste des stations de radio de Rhythmbox?

Sinon, pourriez-vous me suggérer un bon lecteur de musique ayant des fonctionnalités similaires comme Rhythmbox?

Je vous remercie!

Bakhtiyor
la source
1
Vous voulez dire des stations de radio?
Javier Gonzalez
Oui, je veux dire les stations de radio
Bakhtiyor

Réponses:

7

rhythmbox stocke des informations sur tous les fichiers musicaux dans ~ / .local / share / rhythmbox / rythdb.xml

Les entrées concernant les stations radio commencent par "type d'entrée iradio".

Produnis
la source
Ouais tu as raison, je le savais avant. Mais je cherche un moyen plus simple, s'il en existe un.
Bakhtiyor,
3

voici un script python pour faire la même chose, c'est-à-dire extraire les noms et les emplacements des stations de radio Internet à partir de la base de données xml utilisée par Rhythmbox:

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()

(J'ai commencé avec ce tutoriel sur l'utilisation de bases de données XML à partir de python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )

Markus
la source
2

Vous pouvez utiliser xmlstarlet pour extraire les données essentielles de votre fichier XML. Voir ici pour plus de détails:

http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html

colan
la source
joli pointant vers le tutoriel xmlstarlet pour cela
Sabacon
1
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Marco Ceppi
Désolé pour ça. Je viens de le modifier pour inclure l'idée principale. (Merci pour le lien. Je craignais que republier d'autres informations ne dupliquerait inutilement les données Web.)
colan
0

pour exporter lire le fichier ~/.local/share/rhythmbox/rhythmdb.xml
si vous voulez importer Créez une liste de lecture de fichiers M3U comme:

#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

et l'ouvrir avec rhythmbox

m3asmi
la source