Sí, tienes razón, lo sabía antes. Pero estoy buscando una forma más fácil, si existe.
Bakhtiyor
3
Aquí hay un script de Python para hacer lo mismo, es decir, extraer nombres y ubicaciones de estaciones de radio de Internet de la base de datos XML utilizada por Rhythmbox:
import xml.sax.handler
import xml.sax
import pprint
classRhythmboxPlaylistHandler(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 += data
elif self.inRLocation:
self.locationbuffer += data
def 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()
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Marco Ceppi
Lo siento por eso. Acabo de editarlo para incluir la idea principal. (. Gracias por el enlace Estaba preocupado de que volver a colocar otra información sería la duplicación de datos de la web de forma innecesaria.)
Colan
0
para exportar, lea el archivo ~/.local/share/rhythmbox/rhythmdb.xml
si desea importar Cree una lista de reproducción de archivos M3U como:
#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
Respuestas:
rhythmbox almacena información sobre todos los archivos de música en ~ / .local / share / rhythmbox / rhythmdb.xml
Las entradas relativas a las estaciones de radio comienzan con "tipo de entrada iradio".
fuente
Aquí hay un script de Python para hacer lo mismo, es decir, extraer nombres y ubicaciones de estaciones de radio de Internet de la base de datos XML utilizada por Rhythmbox:
(Comencé con este tutorial sobre cómo trabajar con bases de datos XML desde python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )
fuente
Puede usar xmlstarlet para extraer los datos esenciales de su archivo XML. Ver aquí para más detalles:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
fuente
para exportar, lea el archivo
~/.local/share/rhythmbox/rhythmdb.xml
si desea importar Cree una lista de reproducción de archivos M3U como:
y abrirlo con rhythmbox
fuente