在 Rhythmbox 中导入广播电台

在 Rhythmbox 中导入广播电台

我知道 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 插件")

相关内容