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>