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 执行此操作。这不会花太长时间,但很繁琐。:(