Можно ли каким-либо образом импортировать / экспортировать список радиостанций Rhythmbox?
Если нет, можете ли вы предложить мне какой-нибудь хороший музыкальный плеер, который имеет аналогичные функции, такие как Rhythmbox?
Спасибо!
для экспорта читать файл ~/.local/share/rhythmbox/rhythmdb.xml, если вы хотите импортировать Создать плейлист файла M3U как:
#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
и открыть его с помощью rhythmbox
rhythmbox хранит информацию обо всех музыкальных файлах в ~ / .local / share / rhythmbox / rhythmdb.xml
Записи, касающиеся радиостанций, начинаются с «типа ввода iradio».
rhythmbox хранит информацию обо всех музыкальных файлах в ~ / .local / share / rhythmbox / rhythmdb.xml
Записи, касающиеся радиостанций, начинаются с «типа ввода iradio».
для экспорта прочитайте файл ~ / .local / share / rhythmbox / rhythmdb.xml
, если вы хотите импортировать Создать плейлист файла M3U как:
# EXTM3U #EXTINF: -1, Quran - Eman City Quran & amp; Ислам Обсуждение http://206.72.199.180:9990/;stream.nsv #EXTINF: -1, Quran - Radio Quraan http://66.45.232.131:9994/;stream.nsv #EXTINF: -1, Коран - Аллаху Акбар Радио 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 & amp; Шейх Мухаммад Митвалли Аль Шарави http://206.72.199.179:9992/;stream.nsv #EXTINF: -1, Quran - radioislamico http://66.45.232.134:9996/;stream.nsv
и откройте его с помощью rhythmbox
Вы можете использовать xmlstarlet, чтобы вытащить основные данные из вашего XML-файла. Подробнее см. Здесь:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
вот сценарий python для выполнения того же самого действия, т. е. извлечения имен и местоположений интернет-радиостанций из базы данных xml, используемой 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"] # нас интересует type = "iradio" elif name == " title "и self.entrytype ==" iradio ": self.inRTitle = True elif name ==" location "и 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" an d self.entrytype == "iradio": self.radiostations [self.titlebuffer] = self.locationbuffer self.titlebuffer = "" self.locationbuffer = "" parser = xml.sax.make_parser () обработчик = RhythmboxPlaylistHandler () parser. setContentHandler (обработчик) parser.parse ("work_copy_of_rhythmdb.xml") pprint.pprint (handler.radiostations) rstations = handler.radiostations rskeys = [ключ для ключа в rstations] rskeys.sort () ofile = open ("rhytmbox_current_internet_radiostations.txt" , "w") ofile.write ("# {0:41} - & gt; {1} \r \n ".format ('название радиостанции', 'location')) ofile.write (" # "+ 120 * '-' +" \r \n ") для ключа в rskeys:. write ("{0:45} - & gt; {1} \r \n" .format (key, rstations [key])) ofile.close ()
(я начал с этим руководством по работе с базами данных XML изнутри python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )
rhythmbox хранит информацию обо всех музыкальных файлах в ~ / .local / share / rhythmbox / rhythmdb.xml
Записи, касающиеся радиостанций, начинаются с «типа ввода iradio».
для экспорта прочитайте файл ~ / .local / share / rhythmbox / rhythmdb.xml
, если вы хотите импортировать Создать плейлист файла M3U как:
# EXTM3U #EXTINF: -1, Quran - Eman City Quran & amp; Ислам Обсуждение http://206.72.199.180:9990/;stream.nsv #EXTINF: -1, Quran - Radio Quraan http://66.45.232.131:9994/;stream.nsv #EXTINF: -1, Коран - Аллаху Акбар Радио 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 & amp; Шейх Мухаммад Митвалли Аль Шарави http://206.72.199.179:9992/;stream.nsv #EXTINF: -1, Quran - radioislamico http://66.45.232.134:9996/;stream.nsv
и откройте его с помощью rhythmbox
Вы можете использовать xmlstarlet, чтобы вытащить основные данные из вашего XML-файла. Подробнее см. Здесь:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
вот сценарий python для выполнения того же самого действия, т. е. извлечения имен и местоположений интернет-радиостанций из базы данных xml, используемой 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"] # нас интересует type = "iradio" elif name == " title "и self.entrytype ==" iradio ": self.inRTitle = True elif name ==" location "и 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" an d self.entrytype == "iradio": self.radiostations [self.titlebuffer] = self.locationbuffer self.titlebuffer = "" self.locationbuffer = "" parser = xml.sax.make_parser () обработчик = RhythmboxPlaylistHandler () parser. setContentHandler (обработчик) parser.parse ("work_copy_of_rhythmdb.xml") pprint.pprint (handler.radiostations) rstations = handler.radiostations rskeys = [ключ для ключа в rstations] rskeys.sort () ofile = open ("rhytmbox_current_internet_radiostations.txt" , "w") ofile.write ("# {0:41} - & gt; {1} \r \n ".format ('название радиостанции', 'location')) ofile.write (" # "+ 120 * '-' +" \r \n ") для ключа в rskeys:. write ("{0:45} - & gt; {1} \r \n" .format (key, rstations [key])) ofile.close ()
(я начал с этим руководством по работе с базами данных XML изнутри python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )
rhythmbox хранит информацию обо всех музыкальных файлах в ~ / .local / share / rhythmbox / rhythmdb.xml
Записи, касающиеся радиостанций, начинаются с «типа ввода iradio».
для экспорта прочитайте файл ~ / .local / share / rhythmbox / rhythmdb.xml
, если вы хотите импортировать Создать плейлист файла M3U как:
# EXTM3U #EXTINF: -1, Quran - Eman City Quran & amp; Ислам Обсуждение http://206.72.199.180:9990/;stream.nsv #EXTINF: -1, Quran - Radio Quraan http://66.45.232.131:9994/;stream.nsv #EXTINF: -1, Коран - Аллаху Акбар Радио 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 & amp; Шейх Мухаммад Митвалли Аль Шарави http://206.72.199.179:9992/;stream.nsv #EXTINF: -1, Quran - radioislamico http://66.45.232.134:9996/;stream.nsv
и откройте его с помощью rhythmbox
Вы можете использовать xmlstarlet, чтобы вытащить основные данные из вашего XML-файла. Подробнее см. Здесь:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
вот сценарий python для выполнения того же самого действия, т. е. извлечения имен и местоположений интернет-радиостанций из базы данных xml, используемой 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"] # нас интересует type = "iradio" elif name == " title "и self.entrytype ==" iradio ": self.inRTitle = True elif name ==" location "и 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" an d self.entrytype == "iradio": self.radiostations [self.titlebuffer] = self.locationbuffer self.titlebuffer = "" self.locationbuffer = "" parser = xml.sax.make_parser () обработчик = RhythmboxPlaylistHandler () parser. setContentHandler (обработчик) parser.parse ("work_copy_of_rhythmdb.xml") pprint.pprint (handler.radiostations) rstations = handler.radiostations rskeys = [ключ для ключа в rstations] rskeys.sort () ofile = open ("rhytmbox_current_internet_radiostations.txt" , "w") ofile.write ("# {0:41} - & gt; {1} \r \n ".format ('название радиостанции', 'location')) ofile.write (" # "+ 120 * '-' +" \r \n ") для ключа в rskeys:. write ("{0:45} - & gt; {1} \r \n" .format (key, rstations [key])) ofile.close ()
(я начал с этим руководством по работе с базами данных XML изнутри python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )