我知道 Rhythmbox 中存储了各种信息~/.local/share/rhythmbox/rhythmdb.xml
。
所有带有 的条目type="iradio"
均为广播电台。
我想从收听。
我的问题是:是否有任何 API 可以用来操作这个 xml 数据库?
我的意思是,我可以手动完成,但由于 Rhythmbox 已经可以操作它,并且它有插件支持,所以我想有一些比在应用程序之外进行更新更好的方法。
更新
我最终手动更新了它https://github.com/umpirsky/rhytmbox-tunein-import。
答案1
Rhythmbox 确实有一个C/Python您可以使用 API 来添加和更改曲目/歌曲/电台/播客等的详细信息。
您不能直接写入本地 rhythmdb.xml - 这是一个内部 XML 格式,可能会在不同版本之间发生变化。
以下示例中的关键部分如下:
- “iradio” 是与内部数据库中存储的互联网广播电台相对应的 entry_type
- 您可以通过以下方式创建新条目
RB.RhythmDBEntry.new
- 您必须先将条目提交到数据库,然后才能修改电台名称和电台类型等其他详细信息
从 gi.repository 导入 GObject、Peas 从 gi.repository 导入 RB 类SamplePython(GObject.Object,Peas.Activatable): __gtype_name = 'SamplePythonPlugin' 对象 = GObject.属性(类型=GObject.GObject) def __init__(self): GObject.Object.__init__(自身) def do_activate(自身): print("激活示例 Python 插件") 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” 条目 = RB.RhythmDBEntry.new(db,entry_type,url) db.提交() db.entry_set(条目,RB.RhythmDBPropType.TITLE,url) db.entry_set(entry,RB.RhythmDBPropType.GENRE,“未知”) def do_deactivate(自身): print("停用示例 Python 插件")