Rhythmbox Radio Station listesini nasıl içe / dışa aktarabilirim?


10

Rhythmbox Radio Station listesini içe / dışa aktarmanın bir yolu var mı?

Değilse, bana Rhythmbox gibi benzer özelliklere sahip iyi bir müzik çalar önerebilir misiniz?

Teşekkür ederim!


1
Radyo istasyonları mı demek istiyorsun?
Javier Gonzalez

Evet, radyo istasyonlarını kastediyorum
Bakhtiyor

Yanıtlar:


7

rhythmbox tüm müzik dosyaları hakkındaki bilgileri ~ / .local / share / rhythmbox / rhythmdb.xml dosyasında depolar

Radyasyon istasyonları ile ilgili girişler "giriş tipi iradio" ile başlar.


Evet haklısın, daha önce biliyordum. Ama eğer varsa, daha kolay bir yol arıyorum.
Bakhtiyor

3

İşte aynı şeyi yapmak için bir python betiği, yani Rhythmbox tarafından kullanılan xml veri tabanından internet radyo istasyonlarının adlarını ve konumlarını ayıklayın:

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()

(Bu öğretici ile python içinden XML veri tabanlarıyla çalışmaya başladım: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )


2

Xmlstarlet, temel verileri XML dosyanızdan çıkarmak için kullanabilirsiniz. Ayrıntılar için buraya bakın:

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


Bunun için xmlstarlet öğretici için güzel işaret
Sabacon

1
Bu teorik olarak soruyu cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
Marco Ceppi

Bunun için üzgünüm. Sadece ana fikri içerecek şekilde düzenledim. (Bağlantı için teşekkürler. Diğer bilgileri yeniden yayınlamanın web verilerini gereksiz yere çoğaltacağından endişelendim.)
colan

0

dışa aktarmak için dosyayı ~/.local/share/rhythmbox/rhythmdb.xml
içe aktarmak istiyorsanız okuyun Bir M3U dosya listesi oluşturun :

#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

ve ritim kutusuyla aç

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.