Rhythmbox의 라디오 방송국 목록을 가져 오거나 내보내는 방법은 무엇입니까?


10

Rhythmbox의 라디오 방송국 목록을 가져 오거나 내보내는 방법이 있습니까?

그렇지 않다면 Rhythmbox와 비슷한 기능을 가진 좋은 음악 플레이어를 제안 해 주시겠습니까?

감사합니다!


1
라디오 방송국을 의미합니까?
Javier Gonzalez

예, 저는 라디오 방송국을 의미합니다
Bakhtiyor

답변:


7

rhythmbox는 ~ / .local / share / rhythmbox / rhythmdb.xml에 모든 음악 파일에 대한 정보를 저장합니다

라디오 방송국 관련 항목은 "entry type iradio"로 시작합니다.


네 맞아요, 전에는 알고 있었어요 그러나 나는 존재하는 경우 더 쉬운 방법을 찾고 있습니다.
Bakhtiyor

3

Rhythmbox가 사용하는 xml 데이터베이스에서 인터넷 라디오 방송국의 이름과 위치를 추출하는 동일한 작업을 수행하는 Python 스크립트는 다음과 같습니다.

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 데이터베이스로 작업하는 방법에 대한 튜토리얼을 시작했습니다 : http://oreilly.com/catalog/pythonxml/chapter/ch01.html )


2

xmlstarlet을 사용하여 XML 파일에서 필수 데이터를 가져올 수 있습니다. 자세한 내용은 여기를 참조하십시오.

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


이것에 대한 xmlstarlet 자습서를 가리키는 좋은 방법
Sabacon

1
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Marco Ceppi

미안합니다. 방금 주요 아이디어를 포함하도록 편집했습니다. (링크 주셔서 감사합니다. 다른 정보를 다시 게시하면 웹 데이터가 불필요하게 복제 될까봐 걱정되었습니다.)
colan

0

파일을 읽을 내보내기 ~/.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

리듬 박스로 열고

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.