Cómo: Raspberry Pi: instalar Airplay “Shairport” en Raspberry Pi

Cualquiera que utilice uno (o más) dispositivos Apple seguramente conoce la función AirPlay. Gracias a esto, se pueden transmitir todo tipo de medios a otros dispositivos de la red. Puede mostrar fotografías en un televisor compatible con AirPlay, reproducir vídeos o reproducir música en altavoces compatibles con AirPlay.

Al menos puedes lograr esto último fácilmente con una RaspberryPi y convertir una RaspberryPi en un altavoz compatible con AirPlay.

Utilizo esta solución en mi MagicMirror, por ejemplo. Así que también puedes utilizar el RaspberryPi (que está integrado en el magicMirror) como altavoz musical. 🙂

Todo lo que necesitas para configurar tu RaspberryPi se describe en el siguiente artículo.


Instrucciones de seguridad

Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Enlaces afiliados / enlaces publicitarios

Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂 


Requisitos

Artículos útiles:
Antes de comenzar con este artículo, debe haber preparado la RaspberryPi para que pueda accederse a ella a través de la red y controlarse a través de SSH.

Los siguientes tres artículos describen lo que se debe hacer para preparar la RaspberryPi:
RaspberryPi: ¡configuración para nerdiys!
RaspberryPi – ¡La primera configuración!
RaspberryPi: controle el RaspberryPi a través de SSH

Herramienta requerida:
-No-

Material requerido:

En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.


Inicie sesión en RaspberryPi a través de SSH

Para comenzar, primero debe iniciar sesión en Rasp Pi con Putty a través de SSH. Cómo hacer esto está en el artículo. RaspberryPi - Controle el RaspberryPi a través de SSH descrito.

Después de ingresar su nombre de usuario y contraseña, puede ingresar los primeros comandos.

Gestión de paquetes de actualización

La gestión de paquetes en Linux es un "lugar central" a través del cual se pueden instalar varios paquetes de software. Para que esto funcione de manera confiable, las listas y fuentes de administración de paquetes deben actualizarse antes de cada instalación de nuevos paquetes.

Para iniciar la actualización de la gestión de paquetes, debe ingresar el siguiente comando.
sudo apt-obtener actualización && sudo apt-obtener actualización
Dependiendo de cuánto tiempo hace que fue la última actualización de la administración de paquetes, este proceso ahora puede demorar un tiempo. Las listas que hacen referencia a las fuentes de paquetes individuales se actualizan primero.
Después de eso, los paquetes en sí se actualizan. Dado que la memoria adicional está ocupada, se le pedirá nuevamente su consentimiento. Tienes que confirmar esto con una "J" y "Enter".
Una vez que se complete la actualización, verá un pequeño resumen de la duración y el alcance de la actualización.

Instalar Shairport

Instalar Shairport es muy fácil gracias al administrador de paquetes.

Simplemente ingrese el siguiente comando en la consola de su RaspberryPi.

sudo apt-get install shairport-sync

Puede confirmar cualquier solicitud que ocupe memoria presionando “Y” y “Entrar”.

La instalación se ejecuta entonces automáticamente.

Para iniciar Shairport después de la instalación, ahora debe ejecutar el siguiente comando

sudo systemctl start shairport-sync


Ver el estado de

Gracias a la herramienta de línea de comandos systemctl, puede obtener fácilmente una descripción general del estado de su servidor Shairport.

Simplemente ingrese el siguiente comando en la consola de su RaspberryPi.

sudo systemctl status shairport-sync

Aquí ahora puede ver si el servidor Shairport está "activo" o "inactivo".


Habilitar inicio automático

Para que su servidor Shairport se reinicie automáticamente después de un reinicio de RaspberryPi, ahora debe activar su inicio automático.

Simplemente ingrese el siguiente comando en la consola de su RaspberryPi.

sudo systemctl habilitar shairport-sync


Iniciar reproducción de música

Eso es todo lo que fue. Ahora debería poder utilizar su receptor AirPlay de fabricación propia en su iPhone (u otro dispositivo Apple). 🙂

Por ejemplo, ahora encontrará el símbolo marcado en su aplicación "Podcasts".

Tan pronto como hagas clic en él...

...deberá abrirse un menú en el que se muestra el altavoz AirPlay que acaba de configurar (aquí llamado “MagicMirror”).

Tan pronto como haga clic en él, la música debería comenzar a reproducirse en él.


Diviértete con el proyecto.

Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂

PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂

Cómprame un café en ko-fi.com       

12s comentarios

  1. Hola,

    Gracias por el artículo. ¡Carreras!

    Pequeña pista: tiene la administración de paquetes de actualización dos veces dentro.

    LG,
    Flo

  2. Hola, mi nombre es Achim Graf
    Tengo el problema de que Shairport-sync, ya sea en Rapi 3b+ o 4b, no se conecta a Airmusic en una tableta de Amazon rooteada. Airmusic en la tableta encuentra inmediatamente el Raspi con la sincronización de Shairport iniciada, pero cuando quiero conectarlo, el icono de Airmusic se vuelve azul durante 1 segundo, luego rojo durante 3-5 segundos y el juego comienza de nuevo. Después de aproximadamente 5 ejecuciones, aparece un mensaje de error con consejos que ya he leído varias veces.
    Raspian se reinstaló cada vez con Raspberry Pi Imager, todo como se describe.
    Airmusic se conecta inmediatamente a Shaiport4w en la computadora portátil y a mi Sony Android TV.
    Me estoy desesperando, sería genial si pudieras ayudarme a poner esto en marcha.
    Funciona para tantos, ¿qué estoy haciendo mal?
    Probé todo con la versión de escritorio, la versión lite, con WiFi y con un cable LAN.
    lg. A.Graf

    1. Hola Achim,
      Realmente no puedo darle sentido ahora mismo. (También porque no uso Airmusic y compañía).
      Pero parece un poco que el cliente Shairport en Raspi se está bloqueando y reiniciando. ¿Puede verificar el diario (la salida del registrador del proceso) y publicarlo aquí?
      Debería poder verlo con el siguiente comando "sudo journalctl -f -u shairport-sync". Es mejor comenzar el diario y luego intentar conectarse. Tal vez. Ya puedes ver lo que pasó allí. 🙂
      Atentamente
      Fabian

  3. Hola Fabián,
    Muchas gracias por ocuparse del asunto.
    Como tengo mis problemas para transferir el texto desde la terminal, lo escribo aquí, se repite 8 veces hasta que Airmusic se da por vencido.
    Cada línea está precedida por el nombre de Raspi con el siguiente "systemd[1]:"
    pero eso es probablemente siempre el caso.

    Comenzó Shaiport Sync - Receptor de audio Airplay.
    shairport-sync.service: proceso principal cerrado, código=eliminado, estado=11/SEGV
    shairport-sync.service: error con el resultado 'señal'.
    shairport-sync.service: Consumió 3.099 s de tiempo de CPU.
    shairport-sync.service: trabajo de reinicio programado, el contador de reinicio está en 1.
    Detenido Shairport Sync - Receptor de audio Airplay.
    shairport-sync.service: Proceso principal ex…………. Luego se repite todo 7 veces.

    Espero que esto sea lo suficientemente significativo para solucionar el problema.
    Saludos, Achim

    1. Hola Achim,
      De acuerdo, parece que se confirma mi sospecha inicial. El servicio de Shairport parece bloquearse cuando intenta conectarse.
      Desafortunadamente, el LogLevel actual no le brinda una declaración correcta de por qué sucede esto. Entonces necesitamos aumentar el LogLevel.
      Tienes que adaptar un poco el archivo de servicio para esto.
      Para hacer esto, ingrese lo siguiente
      sudo nano /lib/systemd/system/shairport-sync.servicio
      y cambiar la línea
      ExecStart=/usr/bin/shairport-sync –daemon $DAEMON_ARGS
      a
      ExecStart=/usr/bin/shairport-sync -vvv –daemon $DAEMON_ARGS
      (Entonces solo necesitas agregar el “-vvv”.)
      Luego, ejecute el siguiente comando para volver a cargar el archivo de servicio:
      sudo systemctl daemon-recargar
      Ahora deberías iniciar nuevamente el diario del servicio shairport “sudo journalctl -f -u shairport-sync”.
      Lo mejor que puede hacer ahora es abrir otra conexión/terminal SSH y luego reiniciar el servicio Shaiport con “sudo systemctl restart shairport-sync”. Ahora debería ver más información en la revista.
      Intente conectarse de nuevo al servidor de Shairport. Ahora la salida en el diario debe ser mucho más detallada.
      Luego copie el número de la revista aquí nuevamente. 🙂
      (Aquí también se describe cómo copiar texto en Putty, por ejemplo: https://www.alphr.com/copy-paste-putty/)
      Atentamente
      Fabian

  4. // Contenido del archivo .service:

    [unidad]
    Descripción=Shairport Sync - Receptor de audio AirPlay
    Documentación=hombre:shairport-sync(7)
    Documentación=archivo:///usr/share/doc/shairport-sync/README.md.gz
    Documentación=https://github.com/mikebrady/shairport-sync
    After=sonido.objetivo
    Requiere=avahi-daemon.servicio
    After=avahi-daemon.servicio
    Wants=network-online.objetivo
    After=red.objetivo red-online.objetivo

    [Servicio]
    tipo=sencillo
    Reiniciar = en caso de falla
    EnvironmentFile=-/etc/default/shairport-sync
    ExecStart=/usr/bin/shairport-sync $DAEMON_ARGS
    Usuario = shairport-sync
    Grupo=shairport-sync

    [Instalar]
    WantedBy=multi-usuario.objetivo

    ——————————————————————————

    // Después de ingresar -vvv pero sin -daemon , porque no existe en el original.
    // ExecStart=/usr/bin/shairport-sync -vvv $DAEMON_ARGS

    iniciar sesión como: guido
    guido@192.168.188.47contraseña de:
    Linux Bestatt02 5.15.56-v7+ #1575 SMP Vie 22 de julio 20:28:11 BST 2022 armv7l

    Los programas incluidos con el sistema Debian GNU/Linux son software libre;
    los términos de distribución exactos para cada programa se describen en el
    archivos individuales en /usr/share/doc/*/copyright.

    Debian GNU/Linux viene SIN GARANTÍA EN ABSOLUTO, en la medida
    permitido por la ley aplicable.
    Último inicio de sesión: miércoles 17 de agosto 10:25:33 2022
    guido@Bestatt02:~ $ sudo nano /lib/systemd/system/shairport-sync.service
    guido@Bestatt02:~ $ sudo journalctl -f -u shairport-sync // .archivo de servicio editado.
    guido@Bestatt02:~ $ sudo systemctl demonio-recargar
    — El diario comienza el lunes 2022-04-04 14:05:58 CEST. —
    17 de agosto 10:25:33 Bestatt02 systemd[1]: Shairport Sync iniciado: receptor de audio AirPlay.
    17 de agosto 10:25:33 Bestatt02 systemd[689]: shairport-sync.service: no se pudo ubicar el ejecutable /usr/bin/shairport-sync-vvv: no existe tal archivo o directorio
    17 de agosto 10:25:33 Bestatt02 systemd[689]: shairport-sync.service: error en el paso EXEC spawning /usr/bin/shairport-sync-vvv: no existe tal archivo o directorio
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Proceso principal cerrado, código=salido, estado=203/EXEC
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Error con el resultado 'código de salida'.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: trabajo de reinicio programado, el contador de reinicio está en 5.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: Detenido Shairport Sync – AirPlay Audio Receiver.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Solicitud de inicio repetida demasiado rápido.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Error con el resultado 'código de salida'.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: No se pudo iniciar Shairport Sync – AirPlay Audio Receiver.
    ^C
    guido@Bestatt02:~ $

    // reiniciar Raspi
    —————————————————————————————————-

    ahora con “-vvv –daemon”

    guido@Bestatt02:~ $ sudo nano /lib/systemd/system/shairport-sync.service
    guido@Bestatt02:~ $ sudo systemctl demonio-recargar
    guido@Bestatt02:~ $ sudo journalctl -f -u shairport-sync
    — El diario comienza el lunes 2022-04-04 14:05:58 CEST. —
    17 de agosto 10:25:33 Bestatt02 systemd[1]: Shairport Sync iniciado: receptor de audio AirPlay.
    17 de agosto 10:25:33 Bestatt02 systemd[689]: shairport-sync.service: no se pudo ubicar el ejecutable /usr/bin/shairport-sync-vvv: no existe tal archivo o directorio
    17 de agosto 10:25:33 Bestatt02 systemd[689]: shairport-sync.service: error en el paso EXEC spawning /usr/bin/shairport-sync-vvv: no existe tal archivo o directorio
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Proceso principal cerrado, código=salido, estado=203/EXEC
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Error con el resultado 'código de salida'.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: trabajo de reinicio programado, el contador de reinicio está en 5.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: Detenido Shairport Sync – AirPlay Audio Receiver.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Solicitud de inicio repetida demasiado rápido.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: shairport-sync.service: Error con el resultado 'código de salida'.
    17 de agosto 10:25:33 Bestatt02 systemd[1]: No se pudo iniciar Shairport Sync – AirPlay Audio Receiver.
    ^C
    guido@Bestatt02:~ $

    // Revisé la parte .service nuevamente en nano, todo está correcto... espero.

    [Servicio]
    tipo=sencillo
    Reiniciar = en caso de falla
    EnvironmentFile=-/etc/default/shairport-sync
    ExecStart=/usr/bin/shairport-sync -vvv -daemon $DAEMON_ARGS
    Usuario = shairport-sync
    Grupo=shairport-sync

    // mismo mensaje de error
    // No puedo avanzar más
    saluda achim

    1. Hola Achim,

      El problema probablemente se deba a que falta un espacio antes del “-vvv”.
      En la línea "17 de agosto 10:25:33 Bestatt02 systemd[689]: shairport-sync.service: No se pudo localizar el ejecutable /usr/bin/shairport-sync-vvv: No existe tal archivo o directorio"
      Puedes ver que está intentando ejecutar el comando "shairport-sync-vvv". Por lo tanto, el parámetro "-vvv" se interpreta como parte del nombre del archivo y no como un parámetro.
      Verifique nuevamente si realmente hay un espacio entre las partes “/usr/bin/shairport-sync” y “-vvv”. 🙂
      Atentamente
      Fabian

  5. Lo siento, solo quería darte las gracias por poner tanto esfuerzo en ello.
    Desafortunadamente, la cosa con el registro extendido no parece funcionar para mí, no sé si hay demasiados espacios en él, no estoy tan familiarizado con la sintaxis, pero trate de no hacer entradas incorrectas.

    Además, la configuración a través de reCaptcha es un horror. Nunca sé qué quiere ese estúpido botón en la parte inferior derecha de mí, en su mayoría solo funciona a 3 o 4x y luego nunca sé por qué funcionó... grrr.

  6. Hola Fabián, este sitio es un desastre.
    Ahora probé 3 veces para enviar un mensaje de texto, lo que aparentemente funcionó después de x intentos, pero cada vez que invoco la página después de unas horas, mi comentario desapareció.
    Esto debe estar relacionado con el reCAPTCHA, no recibo un aviso para hacer clic en ninguna cosa, alarma contra incendios, bicicleta, etc., espero que esto no se pierda de nuevo. Si te envío una de las direcciones de correo electrónico de mi foro y la cambiamos por la mía sana por correo electrónico, ¿podemos comunicarnos a través de ella?
    Solo si todavía quieres ayudarme con el problema.
    Saludos achim

    1. Hola Achim,
      el sitio está funcionando y todos sus comentarios han llegado. Pero tengo que activar los comentarios individuales.
      Desafortunadamente, no hay otra manera, ya que los spambots pegan las columnas de comentarios varias veces al día.
      Trato de ver su problema durante el día.
      Atentamente
      Fab

  7. Hola fabuloso,
    nueva actualización, después de que fui a un festival de vino el fin de semana pasado e inmediatamente atrapé a Corona, me tomó una semana volver a arreglármelas.
    Me puse a trabajar con nueva energía y traté de activar el diario extendido nuevamente.
    Ambos Raspis se encendieron y notaron con una cara estúpida que ambos se conectaron inmediatamente a Airmusic en la tableta Fire después de arrancar.
    Sin Flaks, tengo las piezas desde el 18 de agosto. no tocado, no hay tal cosa, ¿verdad?
    Es bueno que funcione pero no me satisface porque no sé por qué...
    No quiero molestarte más con el hacer místico de los Raspis.
    Muchas gracias por su paciencia, me ha dado la confirmación todo el tiempo de que eventualmente funcionará.
    Sin embargo, no pensé que funcionaría así.
    Pasar un buen rato.
    Saludos, Achim

Kommentar hinterlassen

Tu dirección de correo electrónico no será publicada. Erforderliche Felder sind mit * markiert

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.