kein Sound bei Raspotify über Docker-Container

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe das piotrb/raspotify-docker Image installiert, um so Raspotify in einem Docker Container laufen zu lassen. Vom Handy aus ist die Verbindung über Spotify auch möglich, aber die Soundausgabe funktioniert nicht.

    Ich habe für die Soundausgabe Aktivlautsprecher über USB am Raspi, die ich in der usr/share/alsa/alsa.conf als Standard konfiguriert habe. Über den Befehl speaker-test -c2 -twav -l7 per SSH funktionieren diese auch.

    Anscheinend klappt die Soundausgabe grundsätzlich, aus dem Raspotify-Container aber nicht.

    Kann mir jemand helfen?

  • Moin P137,

    sri, das ich nun erst antworte.
    Kannst du mir sagen welche Version des Betriebssystem du nutzt?
    Bei mir sagt Docker das er kein latest finden kann. Wie hast du das Image installiert?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin Bernd!

    Kein Thema, ich bin froh, wenn mir überhaupt geholfen wird. Eilt nicht.

    Betriebssystem:

    pi@raspberrypi:~ $ cat /etc/os-release
    PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
    NAME="Debian GNU/Linux"
    VERSION_ID="12"
    VERSION="12 (bookworm)"
    VERSION_CODENAME=bookworm
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"

    Dockerversion:

    pi@raspberrypi:~ $ docker version
    Client: Docker Engine - Community
    Version:           27.0.2
    API version:       1.46
    Go version:        go1.21.11
    Git commit:        912c1dd
    Built:             Wed Jun 26 18:47:25 2024
    OS/Arch:           linux/arm64
    Context:           default

    Server: Docker Engine - Community
    Engine:
     Version:          27.0.2
     API version:      1.46 (minimum version 1.24)
     Go version:       go1.21.11
     Git commit:       e953d76
     Built:            Wed Jun 26 18:47:25 2024
     OS/Arch:          linux/arm64
     Experimental:     false
    containerd:
     Version:          1.7.18
     GitCommit:        ae71819c4f5e67bb4d5ae76a6b735f29cc25774e
    runc:
     Version:          1.7.18
     GitCommit:        v1.1.13-0-g58aa920
    docker-init:
     Version:          0.19.0
     GitCommit:        de40ad0

    Hab das normale Debian-Image über den Raspi-Imager auf die SD erstellt und dann per SSH Docker installiert. Also:

    curl -fsSL https://get.Docker.com -o get-Docker.sh

    sudo sh get-Docker.sh

    Anschließend noch Portainer dazu und dann die Container usw. über Portainer.
    Hab das nach der Anleitung von heise gemacht: hier

    Das Raspotify-Image ist dieses hier

    Habe auch noch andere getestet. Aber entweder mit dem gleichen Resultat oder die Verbindung in Spotify zum Pi ist direkt abgerissen, sobald ich auf Play gedrückt habe.


    Gruß
    Martin

    Edited 4 times, last by P137 (July 5, 2024 at 10:20 AM).

  • Moin P137,

    nach 2 langen Abende mit raspotify glaube ich es zu wissen.
    raspotify läuft als Daemon und ist ein Wrapper für librespot. Docker wird nur benötigt um diese Datei raspotify-latest-arm64.deb zu erzeugen. In dem Container wird dann für das Zielsystem die deb-Datei gebaut und man kann sie dann auf dem Zielsystem installieren.
    Docker wird anschliessend nicht mehr benötigt.
    Es gibt aber einen viel einfacheren Weg. Diese Seite https://dtcooper.github.io/raspotify/ sollte weiterhelfen. Im Wiki stehen das Hinweise wie man Sound usw. einstellt.

    Wenn du noch Fragen hast, dann frage.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Vielen Dank für deine Mühen, Bernd!!

    So richtig komme ich nicht weiter. Den Teil hier verstehe ich nicht.

    In dem Container wird dann für das Zielsystem die deb-Datei gebaut und man kann sie dann auf dem Zielsystem installieren.
    Docker wird anschliessend nicht mehr benötigt.

    Läuft Raspotify nicht in dem Container, sondern auf der "Hauptebene" (keine Ahnung, wie das richtig heißt), wo auch Docker ausgeführt wird?

    Über ssh kann ich jedenfalls nicht direkt librespot-Befehle ausführen. Da sagt er mir z.B.:

    pi@raspberrypi:~ $ librespot --device ?
    -bash: librespot: command not found

    Gehe ich in die Shell des Containers über:

    docker exec -it raspotify sh

    dann läuft es auch nicht richtig.

    $ librespot --device ?

    ergibt:


    error: Required option 'name' missing
    Usage: librespot [options]

    Options:
       -c, --cache CACHE   Path to a directory where files will be cached.
           --disable-audio-cache
                           Disable caching of the audio data.
       -n, --name NAME     Device name
           --device-type DEVICE_TYPE
                           Displayed device type
       -b, --bitrate BITRATE
                           Bitrate (96, 160 or 320). Defaults to 160
           --onevent PROGRAM
                           Run PROGRAM when playback is about to begin.
       -v, --verbose       Enable verbose output
       -u, --username USERNAME
                           Username to sign in with
       -p, --password PASSWORD
                           Password
           --proxy PROXY   HTTP proxy to use when connecting
           --ap-port AP_PORT
                           Connect to AP with specified port. If no AP with that
                           port are present fallback AP will be used. Available
                           ports are usually 80, 443 and 4070
           --disable-discovery
                           Disable discovery mode
           --backend BACKEND
                           Audio backend to use. Use '?' to list options
           --device DEVICE Audio device to use. Use '?' to list options if using
                           portaudio or alsa
           --mixer MIXER   Mixer to use (alsa or softmixer)
       -m, --mixer-name MIXER_NAME
                           Alsa mixer name, e.g "PCM" or "Master". Defaults to
                           'PCM'
           --mixer-card MIXER_CARD
                           Alsa mixer card, e.g "hw:0" or similar from `aplay
                           -l`. Defaults to 'default'
           --mixer-index MIXER_INDEX
                           Alsa mixer index, Index of the cards mixer. Defaults
                           to 0
           --initial-volume VOLUME
                           Initial volume in %, once connected (must be from 0 to
                           100)
           --zeroconf-port ZEROCONF_PORT
                           The port the internal server advertised over zeroconf
                           uses.
           --enable-volume-normalisation
                           Play all tracks at the same volume
           --normalisation-pregain PREGAIN
                           Pregain (dB) applied by volume normalisation
           --linear-volume
                           increase volume linear instead of logarithmic.
           --autoplay      autoplay similar songs when your music ends.

    Vielleicht check ich auch den Befehl nicht, aber laut der Liste müsste er mir so doch die möglichen Devices anzeigen.


    Gruß P137

  • Moin P137,

    ich konnte über die Nutzung von raspotify im Docker nichts finden. Ich habe es so gemacht wie ich es dir geschrieben habe.
    Und da ging der Befehl librespot -d ?.
    Ich konnte es auch nicht testen, weil ich kein Spotify Premium habe.
    Sicher ist aber das alle Einrichtungen in der /etc/raspotify/conf gemacht werden.

    Dann noch eine Frage, hast du in raspi-config deine Soundkarte als default gesetzt?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin Bernd!

    USB-Soundkarte in der raspi-conig ist default.

    Hast du bei deinem Vorgehen raspotify so installiert, dass es letztlich nicht in einem Docker-Container läuft, sondern im Hauptsystem?

    Gruß
    P137

  • Moin P137,

    ja, ich habe es so gemacht wie es auf der Seite zu lesen ist. Kann man kontrollieren mit systemctl status raspotify .
    und librespot ist dann auch gleich installiert.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin Bernd,

    klar kann man raspotify auch ohne docker laufen lassen. So lief es bei mir auch schon. Da ich aber in Zukunft gerne eine Nextcloudpi und raspotify auf dem Pi laufen lassen möchte, kam ich auf die Lösung mit Docker.

    Es scheint auch so zu sein, als ob Raspotify im Container läuft. Wenn ich den Container pausiere, kann ich mich auch nicht mehr mit den Smartphone über Spotify an den USB-Lautsprecher verbinden. Wenn erläuft, dann schon, aber eben ohne Sound.

    Aber anscheinend kommen wir leider nicht weiter.

    Gruß
    P137

  • Moin P137,

    tut mir leid, aber dann kann ich auch nicht weiter, weil mir der Zugang zu Spotify fehlt.
    Dann viel Erfolg.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin P137,

    um dir klar zu machen, was mit dem Docker-Image von piotrb/raspotify-docker eigentlich gemacht werden soll.
    Auf der Githup-Seite steht im READ.ME folgendes:

    Quote

    Clone this repo on your reaspberry pi.

    run make install

    This will install things into systemd and start the process.

    Ich habe mit git clone https://github.com/piotrb/raspotify-docker.git mir das repo geladen und bin in das Verzeichnis gewechselt. Die run.sh habe ich ausführbar gemacht. Dann der Aufruf:

    sudo ./run make install und das Ergebnis:

    Code
    WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm/v8) and no specific platform was requested

    Damit ist klar das dieses Dockerimage nicht für einen RPi geeignet ist.
    Ich habe schon geschrieben, das Docker nur als Hilfsmittel genutzt wird um raspotify herzustellen. Und das rennt dann als ganz normaler Deamon.
    Aber auch wenn das so ist, kannst du andere Service trotzdem im Docker laufen lassen.
    Nun hoffe ich, das alle Klarheiten beseitigt sind....

    73 de Bernd

    //NACHTRAG: Wenn du das Thema hier, nicht weiter machen willst, dann markiere es , bitte, als erledigt. Das geht oben bei "Thema bearbeiten". Danke

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    Edited 3 times, last by Bernd666: Erledigt hinzugefügt. Typo (July 15, 2024 at 11:41 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!