จะมีวิธีการนำเข้า / ส่งออกรายการสถานีวิทยุของ Rhythmbox หรือไม่?
ถ้าไม่คุณช่วยแนะนำเครื่องเล่นเพลงที่มีฟังก์ชั่นคล้าย ๆ กับ Rhythmbox ได้มั้ย
ขอบคุณ!
จะมีวิธีการนำเข้า / ส่งออกรายการสถานีวิทยุของ Rhythmbox หรือไม่?
ถ้าไม่คุณช่วยแนะนำเครื่องเล่นเพลงที่มีฟังก์ชั่นคล้าย ๆ กับ Rhythmbox ได้มั้ย
ขอบคุณ!
คำตอบ:
rhythmbox จัดเก็บข้อมูลเกี่ยวกับไฟล์เพลงทั้งหมดใน ~ / .local / share / rhythmbox / rhythmdb.xml
รายการที่เกี่ยวข้องกับ radiostations เริ่มต้นด้วย "รายการประเภท iradio"
นี่คือสคริปต์ 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"] # 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()
(ฉันเริ่มต้นด้วยบทช่วยสอนนี้เกี่ยวกับการทำงานกับฐานข้อมูล XML จากภายใน python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )
คุณสามารถใช้ xmlstarlet เพื่อดึงข้อมูลสำคัญออกจากไฟล์ XML ของคุณ ดูรายละเอียดที่นี่:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
สำหรับการส่งออกอ่านไฟล์ ~/.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