Crea tu propia radio por internet con Raspberry y Icecast con Ices2 para reproducir tus listas de música por internet
¿Sueñas con tener tu propia estación de radio? ¡Ese sueño puede estar mucho más cerca de lo que piensas!
En este artículo vamos a poner en marcha un canal de radio por internet gratuito desde tu Raspberry pi, al que podrás acceder desde cualquier parte del mundo mundial para así poder escuchar todas tus canciones, programas o podcasts favoritos.
Qué vamos a hacer
Vamos a configurar un servidor multimedia por internet llamado Icecast2. Icecast2 va a reproducir por internet lo que le proporcione un servicio de contenidos, para el que usaremos un programa llamado Ices2, al que le suministraremos nuestros archivos de audio.
Configuramos Icecast2
Lo primero que haremos es configurar Icecast2. En raspbian es un procedimiento sencillo, al ser una distribución Debian, basta con bajarse los paquetes del administrador de paquetes por defecto:
Una vez hecho esto, nos aparecerá un diálogo con algunas preguntas para empezar a configurar Icecast2:
En nuestro caso, ejecutaremos Icecast2 en local, por lo que no tocaremos la configuración acerca del dominio. Recomiendo encarecidamente que hagas lo mismo, por seguridad, y que accedas a tu servidor a través de una VPN, así como a cualquier otro servicio que tengas en tu red local; de esta manera minimizas las vulnerabilidades a las que expones tu red personal al reducir el número de contactos directos con el exterior.
Recuerda que tenemos un artículo acerca de como configurar y poner en marcha tu propia VPN de forma sencilla con Wireguard:
También puedes modificar la configuracón de Icecast2 editando el archivo de configuración directamente:
Una vez hayas configurado Icecast2, cambiando los usuarios y las contraseñas, podras visitar la página de Icecast2 en la siguiente dirección: IP_de_tu_raspberry:8000, a no ser que hayas modificado el puerto. En mi caso, este sería: 192.168.1.85:8000
Solo falta comprobar que podemos acceder al área de administración haciendo clic en "Administration" e introduciendo nuestras credenciales, que acabamos de definir:
Perfecto, ahora solo queremos que Icecast2 se inicie automáticamente al reiniciar nuestra Raspberry, por lo que introcucimos el siguiente comando:
Añadimos los ficheros a emitir
Es hora de añadir los ficheros que queremos emitir. Si ya están en formato Vorbis, puedes avanzar hasta la creación de la carpeta en nuestra Raspberry, en caso contrario, necesitaras convertir tus archivos de audio previamente.
Conversión de archivos
Necesitamos que los archivos estén en formato .ogg, por lo que si tienes, por ejemplo mp3, primero deberás convertirlos. Por fortuna, es un proceso muy sencillo gracias a la existencia de herramientas de código abierto y gratuitas como Audacity, que recomiendo para esta tarea:
Primero, descarga el programa e instálalo desde el enlace publicado arriba y ábrelo. Esto iniciará un proyecto nuevo.
Desde el explorador de archivos, selecciona y arrastra todos los archivos que quieras convertir y arrástralos a la ventana de Audacity: deberían aparecer como pistas independientes:
Ahora solo hace falta hacer clic en Archivo>Exportar>Exportar múltiple:
Y seleccionar el formato de salida, que tiene que ser Ogg Vorbis para nuestra radio por internet:
Una vez finalizado el proceso de exportación, los archivos están listos para nuestra radio.
Creación de la lista de reproducción
Empezaremos creando una carpeta donde guardaremos los archivos multimedia:
ardumaster@little-monkey:~ $ mkdir /mnt/extra/radio/
En mi caso, este es /mnt/extra/radio, ya que he decidido utilizar un disco externo para ello. Hay muchas formas de pasar los archivos a esta carpeta, pero recomiendo montar un servidor Samba; para el cual tenemos un artículo que detalla cómo ponerlo en marcha:
Ahora que tenemos las pistas de audio, necesitamos crear un documento de texto que detalle que archivos de audio queremos reproducir, y en que orden, a no ser que hayas configurado un orden aleatorio.
Para ello creamos un archivo de texto en esta misma carpeta y añadimos la ruta completa de los archivos que queremos reproducir:
ardumaster@little-monkey:~ $ cd /mnt/extra/radio/
ardumaster@little-monkey:/mnt/extra/radio $ nano playlist.txt
Por ejemplo:
Todo listo, solo nos falta alguien que le dé estos archivos a Icecast2.
Configuramos Ices2
Vamos a por la última parte de la ecuación, el programa que creará el stream de contenido: Ices2.
Empezamos instalando el paquete y las herramientas que necesita:
ardumaster@little-monkey:~ $ sudo apt install ices2
ardumaster@little-monkey:~ $ sudo apt install vorbis-tools
Ahora vamos a crear una carpeta con la configuración de Ices2, que copiaremos de sus ejemplos:
Ahora lo que toca es ir editando la configuración según nuestras necesidades. A continuación propongo unas modificaciones mínimas:
Primero buscamos la etiqueta “<stream>” y modificamos los campos:
- <name> Con el nombre de nuestra emisora.
- <genre> Con el género de música o la temática de los podcasts o programas que queremos emitir.
- <description> Con una descripción más detallada de la emisora.
Buscamos la etiqueta “<input>” e introducimos los datos del archivo que indica las pistas que queremos reproducir, que acabamos de crear en la sección anterior:
- <param name=”file”> Ponemos la ruta del archivo que hemos creado.
Por último, buscamos la etiqueta “<instance>” y cambiamos los siguientes parámetros para indicar el punto de arranque de esta emisión:
- <mount> Algo que te parezca adecuado, en mi caso: /radioArdumaster.
A continuación adjunto el archive entero, sé que puede ser difícil visualizarlo a cachitos:
Te habrás fijado en que Ices2 tiene un archivo de registros por defecto: /var/log/ices; pero no tiene permisos para escribir a él, por lo que tenemos que otorgárselos:
ardumaster@little-monkey:/mnt/extra/radio $ sudo chmod 777 /var/log/ices
Una vez tengamos todo configurado, solo basta con iniciar Ices2 con el siguiente comando:
ardumaster@little-monkey:~ $ ices2 /etc/ices2/ices-playlist.xml &
¡A disfrutar de la radio!
Comprobamos que todo funciona
Es tan sencillo como visitar nuestra Ip, con el puerto adecuado y el punto de montaje, en nuestro caso 192.168.85:8000/radioArdumaster, para poder escuchar un stream de nuestros archivos favoritos.
Si quisiéramos escuchar este stream desde fuera de nuestra red local, tan solo sería necesario conectarnos previamente a nuestra VPN.
Conclusiones
Ahora ya tienes todo lo necesario para crear una lista de reproducción en línea y escucharla desde cualquier sitio gracias a tu VPN (o directamente desde tu propio dominio, si así lo has configurado).
En el futuro, exploraremos como hacerlo para poder emitir en vivo y como publicar podcasts, pero por ahora, ¿qué piensas emitir? ¿Lo compartirás con tus amigos? ¿O será une emisión privada? En todo caso, ¡estaría muy agradecida si decidieras contármelo en los comentarios!