将 RadioTray 广播电台导入 Rhythmbox

将 RadioTray 广播电台导入 Rhythmbox

RadioTray 图标小程序非常简洁,带有按类别排序的各种预定义电台。我还添加了一些额外的本地(以色列)电台,最后有几十个。

为了准备即将到来的 Precise 以及需要一个播放器来满足所有人的需求,我想将此列表迁移到 Rhythmbox。

到目前为止我唯一弄清楚的是,Radio Tray 的电台被保存在一个 XML 文件中,位于@HOME/.local/share/radiotray/bookmarks.xml

关于如何将 RadioTray 电台导入 Rhythmbox,您有什么想法吗?

答案1

在此处输入图片描述

该图显示了导入 Rhythmbox 的默认 RadioTray 广播电台

我是怎么做到的?

RadioTray 将其广播电台保存在位于以下位置的 XML 文件中:

~/.local/share/radiotray/bookmarks.xml

Rhythmbox 将其所有数据以类似的方式保存在位于以下位置的 XML 文件中:

~/.local/share/rhythmbox/rhythmdb.xml

如果您检查这两个文件,很明显 XML 格式(其定义的结构)非常不同。

一个解决方案是转换将 Radiotray XML 格式转换为 Rhythmbox 可以理解的格式。

XSLT

您可以使用结构化 XML 翻译语言 XSLT 来执行此转换。

安装:

sudo apt-get install python-4suite-xml

接下来将以下内容复制到新gedit文件中

保存在名为的文件(xml如有必要,创建文件夹)中~/xml/style

接下来,将 RadioTray XML 文件复制到同一文件夹~/xml

最后,将 Rhythmbox XML 文件复制到同一文件夹~/xml

放到终端:

cd ~/xml
4xslt bookmarks.xml style > test.xml

这会将 RadioTray 重新格式化为 RhythmBox 可以读取的 XML

接下来我们需要将这些新数据添加到 Rhythmbox。

test.xml现在打开rhythmdb.xml

test.xml将第一行 EXCEPT的内容复制到rhythmdb.xml文件中。注意 - 将内容粘贴到文件末尾,即

</entry>

*****paste test.xml here*****

</rhythmdb>

节省。

备份旧rhythmdb.xml文件然后复制新rhythmdb.xml文件。

启动 Rhythmbox

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

      <xsl:for-each select="bookmarks/group/group/bookmark">
      <entry type="iradio">
        <title><xsl:value-of select="@name"/></title>
        <genre><xsl:value-of select="translate(../@name,'','')"/></genre>
        <artist></artist>
        <album></album>
    <location><xsl:value-of select="@url"/></location>
        <date>0</date>
        <media-type>application/octet-stream</media-type>
      </entry>
      </xsl:for-each>

</xsl:template>
</xsl:stylesheet>

答案2

嗯,这是有可能的。但是,这个过程不会很快,也不会很有趣。

您需要使用任何程序打开 bookmarks.xml(我个人会使用 gedit),然后打开 Rhythmbox。打开 Rhythmbox 后,您需要右键单击左侧面板上的“Radio”(广播)并选择“New Internet Radio Station”(新互联网广播电台)。您需要复制并粘贴要放入 Rhythmbox 的每个广播电台的网址。然后,您可以随意重命名它们。

您必须对每个 URL 执行此操作。这不会花太长时间,但很繁琐。:(

相关内容