AirPlay en Linux

Configurar Shairport Sync en Ubuntu/Debian y derivados

Roberto Lodeiro

Con Shairport Sync podrás convertir tu Raspberry Pi u otro sistema Linux en un receptor de audio AirPlay.

Tanto si quieres actualizar tu equipo de música (mi caso) conectándole una Raspberry Pi, como configurarlo en tu pc, con Shairport Sync podrás enviar audio desde cualquier cliente compatible(si, existen para Linux) a tu nuevo receptor. En caso de que tu distribución no sea Ubuntu/Debian o derivados, consulta aquí tus requisitos de configuración. También está disponible para macOS y OpenWrt.

Cabe destacar que la diferencia de calidad entre Bluetooth y AirPlay a la hora de transmitir audio de forma inalámbrica es abismal, así que no te lo pienses y elije el segundo.


Actualizar el sistema

Primero actualizamos el sistema e instalamos los paquetes necesarios.

$ sudo apt-get update & sudo apt-get upgrade
$ sudo apt-get install autoconf automake avahi-daemon build-essential git libasound2-dev libavahi-client-dev libconfig-dev libdaemon-dev libpopt-dev libssl-dev libtool xmltoman

Clonar el repositorio

Podemos encontrar shairport-sync en los repositorios de Ubuntu, Raspbian y demás, pero no será la versión actualizada. Clonamos el repositorio en nuestro $HOME:

$ git clone https://github.com/mikebrady/shairport-sync.git

Configurar y compilar

Entramos en el directorio y ejecutamos:

$ cd shairport-sync
$ autoreconf -i -f
$ ./configure --with-alsa --with-avahi --with-ssl=openssl --with-systemd --with-metadata

Una vez configurado, compilamos e instalamos con:

$ make
$ sudo make install

Inicio automático

Para habilitar el inicio automático con systemd ejecutamos:

$ sudo systemctl enable shairport-sync
$ sudo service shairport-sync start

Configuración adicional

Por defecto se mostrará con el nombre del host, podemos cambiarlo con:

$ sudo nano /usr/local/etc/shairport-sync.conf
  • Veremos algo como los siguiente:

    // General Settings
    general =
    {
    // name = "%H"; // This means "Hostname" -- see below. This is the name th$
    

Donde eliminando // delante de name y sustituyendo "%H" por "NuevoNombre" podremos indicar un nombre diferente al del host.

shairport-sync.conf es el archivo de configuración, donde podemos por ejemplo indicar la tarjeta de sonido a utilizar modificando el parámetro "output_device = "default";. Dejando todo como viene, funcionará con la tarjeta indicada en el sistema como default. Yo lo he probado tanto en Raspbian Stretch como en Ubuntu 18.04.

Firewall

Si tienes habilitado el firewal UFW, añade las siguientes reglas:

$ sudo ufw allow from 192.168.1.1/16 to any port 3689 proto tcp
$ sudo ufw allow from 192.168.1.1/16 to any port 5353
$ sudo ufw allow from 192.168.1.1/16 to any port 5000:5005 proto tcp
$ sudo ufw allow from 192.168.1.1/16 to any port 6000:6005 proto udp
$ sudo ufw allow from 192.168.1.1/16 to any port 35000:65535 proto udp

Para mas información, si vuestro sistema es diferente o necesitáis consultar otras posibilidades de configuración este es su repositorio oficial en Github con toda la documentación.

En el momento de escribir esta entrada, Shairport-Sync no soporta el nuevo multi-room de AirPlay 2, con el cual podríamos reproducir audio desde el móvil a la vez en diferentes receptores. Pero no es un problema, ya que existen formas de hacerlo desde dispositivos Linux, lo dejo para otra!


Espero que sea útil, ¡gracias por leerme!