
The image shows the default RadioTray radio stations imported into Rhythmbox
How did I do that?
RadioTray holds its radio-stations in an XML file located in:
~/.local/share/radiotray/bookmarks.xml
Rhythmbox holds all of its data similarly in an XML file located in:
~/.local/share/rhythmbox/rhythmdb.xml
If you examine both files its pretty obvious that the XML format (its defined structure) is very different.
One solution is to transform the Radiotray XML format to something that Rhythmbox can understand.
XSLT
You can use the structured XML translation language XSLT to perform this conversion.
To install:
sudo apt-get install python-4suite-xml
Next copy the contents below into a new gedit file
Save in a file (create the folder xml if necessary) called ~/xml/style
Next, copy the RadioTray XML file to the same folder ~/xml
Finally, copy the Rhythmbox XML file to the same folder ~/xml
Drop to a terminal:
cd ~/xml
4xslt bookmarks.xml style > test.xml
This will reformat the RadioTray into the XML that can be read by RhythmBox
Next we need to add this new data to Rhythmbox.
Now open both test.xml and rhythmdb.xml
Copy the contents of test.xml EXCEPT for the first line into the rhythmdb.xml file. Note - you paste the contents at the end of the file i.e.
</entry>
*****paste test.xml here*****
</rhythmdb>
Save.
Backup the old rhythmdb.xml file and then copy over the new rhythmdb.xml file.
Fire up 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>