Я знаю, что Rhythmbox хранит весь вид информации в ~/.local/share/rhythmbox/rhythmdb.xml
.
Все записи с type="iradio"
радиостанции.
Я хотел бы импортировать радиостанции из TuneIn.
Мой вопрос: есть ли какой-либо API, который я могу использовать для управления этой xml базой данных?
Я имею в виду, я могу сделать это вручную, но так как Rhythmbox уже управляет им, и это имеет сменную поддержку, я предполагаю, что существует некоторый лучший способ обновить его, затем делая его за пределами приложения.
ОБНОВЛЕНИЕ
Я закончил тем, что обновил его вручную https://github.com/umpirsky/rhytmbox-tunein-import.
Rhythmbox действительно имеет C / API Python , который можно использовать, чтобы добавить и изменить детали дорожек / песни / радиостанции / подкасты и т.д.
, Вы не пишете непосредственно в локальный rhythmdb.xml - это - внутренний формат XML, подлежащий изменению между версиями.
В следующем образце ключевые роли следующие:
RB.RhythmDBEntry.new
from gi.repository import GObject, Peas from gi.repository import RB class SamplePython(GObject.Object, Peas.Activatable): __gtype_name = 'SamplePythonPlugin' object = GObject.property(type=GObject.GObject) def __init__(self): GObject.Object.__init__(self) def do_activate(self): print("activating sample python plugin") shell = self.object db = shell.props.db entry_type = db.entry_type_get_by_name("iradio") url = "http://bbc.co.uk/radio/listen/live/r1.asx" entry = RB.RhythmDBEntry.new(db, entry_type, url) db.commit() db.entry_set(entry, RB.RhythmDBPropType.TITLE, url) db.entry_set(entry, RB.RhythmDBPropType.GENRE, "Unknown") def do_deactivate(self): print("deactivating sample python plugin")