Is it any way to import/export Radio Station list of Rhythmbox?
If not, could you please suggest me any good music player which has similar functionality like Rhythmbox?
Thank you!
Is it any way to import/export Radio Station list of Rhythmbox?
If not, could you please suggest me any good music player which has similar functionality like Rhythmbox?
Thank you!
rhythmbox stores information about all music-files in ~/.local/share/rhythmbox/rhythmdb.xml
Entries concerning radiostations start with "entry type iradio".
here's a python script to do the same thing, i.e. extract names and locations of internet radio stations from the xml data base used by 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()
(I started with this tutorial on working with XML data bases from within python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html)
You can use xmlstarlet to pull the essential data out of your XML file. See here for details:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
for exporting read the file ~/.local/share/rhythmbox/rhythmdb.xml
if you want to import Create a M3U file playlist as:
#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
and open it with rhythmbox