Script para añadir radios online en Rhythmbox

Hace años, cuando usaba KDE como entorno de escritorio una de las aplicaciones estrella de la que estaba enamorado era el reproductor de música Amarok, desde entonces no he encontrado ningún reproductor que me conquistara tanto como la aplicación del lobo.

En mis peregrinajes por entornos de escritorio usé Banshee, Clementine y ultimamente uso RhythmBox (nunca se cómo escribirlo) que es sencillo y lo están evolucionando muy bien aunque le falta un par de toques como rellenar automáticamente el id3 de los ficheros, nada que no pueda hacer con ID3tag.

La cuestión es que de vez en cuando me acabo cansando de mi coleccion de musica y para variar me apetece escuchar un poco la radio, en mi caso soy mucho de escuchar la Maxima.fm con el chunda-chunda de fondo mientras trasteo por casa.
Para escuchar las radios online puedes ir a la propia página de la radio, que te carga un player de flash y te obliga a tener el navegador abierto o buscarte el enlace directo entre el código de la página e insertarlo uno a uno en RhythmBox.

Teniendo en cuenta que en casa tengo mas de un ordenador era un poco aburrido tener que ir uno a uno introduciendo las casi 20 emisoras de radio que quería tener disponibles en cada RhythmBox así que me acordé de un script que había hace años en Amarok que se llamaba Spanish Radio. Así que en plan hobby me puse a buscar como poder hacer un pequeño script para añadir las emisoras directamente en RhythmBox sin tener que ir una a una.

Lo primero es investigar cómo almacena RhythmBox su bbdd de canciones y emisoras, que podía hacerlo en una base de datos sql pero es más sencillo, es un fichero xml de texto en la ruta

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

Este fichero tiene una estructura con etiquetas bastante sencilla, en el caso de las radios es la siguiente

<entry type=\”iradio\”>
<title>Nombre de la Emisora</title>
<genre>Genero</genre>
<artist></artist>
<album></album>
<location>URL de la Emisora</location>
<date>0</date>
<mimetype>application/octet-stream</mimetype>
</entry>

Básicamente este es el registro que crea RhythmBox en su base de datos cuando incluimos una nueva emisora de radio directamente desde el programa, es una entrada de tipo iradio con etiquetas muy sencillas y autoexplicativas si sabes algo de ingles.

Para agregar las emisoras podemos crear un fichero de texto donde guardemos nuestras emisoras y copiar y pegar en el xml o por otro lado podemos ser un poco más finos y crear un script y ejecutarlo en cada equipo para añadir cuantas emisoras queramos a nuestro reproductor.

La primera parte de nuestro script seria el tipico #!/bin/bash y despues realizar una copia de seguridad de nuestra bbdd por si acaso que nunca se sabe.

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

La segunda es buscar la etiqueta </rhythmdb>, que delimita el contenido de la bbdd, en el xml y crear un nuevo fichero copia de nuestro xml original pero sin la etiqueta </rhythmdb>

STRING=`grep “</rhythmdb>” -m1 -n ~/.local/share/rhythmbox/rhythmdb.xml | tr -d [a-zA-Z#_.:/\<\>]`

sed $STRING,’$d’  ~/.local/share/rhythmbox/rhythmdb.xml > ~/.local/share/rhythmbox/rhythmdb2.xml

A continuación hacemos un echo con la estructura de etiquetas de la radio que os indique al principio.

<entry type=\”iradio\”>
<title>Nombre de la Emisora</title>
<genre>Genero</genre>
<artist></artist>
<album></album>
<location>URL de la Emisora</location>
<date>0</date>
<mimetype>application/octet-stream</mimetype>
</entry>

Vamos incluyendo una debajo de otra cada entrada de tipo iradio dentro del script hasta que tengamos todas las que queramos. Es muy importante que en la ultima entrada de radio después del ultimo </entry> incluyamos el fichero donde queremos escribirlo.

</entry>” >> ~/.local/share/rhythmbox/rhythmdb2.xml

Después incluimos la etiqueta de cierre de la bbdd

echo  “</rhythmdb>” >> ~/.local/share/rhythmbox/rhythmdb2.xml

El ultimo paso del script es  borrar el fichero original y lo sustituirlo por el fichero sobre el que hemos estado trabajando.

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

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

Por último queda darle al script permisos de ejecución con chmod y lanzarlo con el RhythmBox cerrado, la ejecución es prácticamente instantánea. Ahora solo nos queda abrir RhythmBox y ver como en el apartado de radio aparecen todas nuestras emisoras.

Podría incluir mi fichero de radios pero seguramente con el tiempo se quedaría desactualizado, me parece más interesante mostrar como se lo puede crear uno mismo.

Recordad que el código es libre para usarlo, distribuirlo y por supuesto mejorarlo.

Anuncios

Acerca de Marineru Vagarientu

El viejo truhán capitán de un barco que tuviera por bandera un par de tibias y una calavera.

Publicado el 16 abril, 2013 en Linux, Musica, Software Libre, Ubuntu y etiquetado en , , , , . Guarda el enlace permanente. 1 comentario.

  1. Hi! I know this is kinda off topic but I was wondering if you knew
    where I could locate a captcha plugin for my comment form?
    I’m using the same blog platform as yours and I’m having problems finding one?

    Thanks a lot!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s