Ich bin ein langzeitiger Fan vom Streaming-Dienst Spotify und habe neben der mobilen Nutzung im Auto oder zu Fuß auch natürlich das Interesse zuhause die Musik laut aufzudrehen. So hatte ich mir damals Lautsprecher mit einem Subwoofer besorgt und diese an meinen Tower-PC via AUX angeschlossen. Doch mein Tower-PC ist schon lange abgeklemmt und die Boxen werden nicht mehr beansprucht. Wie kann ich diesen also neues Leben einhauchen? Ich habe mich also etwas schlau gemacht und rumexperiementiert, um meinen oDroid XU4 als Ausgabegerät für Spotify zu nutzen. Im folgenden Beitrag würde ich zeigen was dabei rausgekommen ist: der oDroid XU4 Spotify Connect Client.

Wir bedienen uns dazu an librespot, einer Library, die uns unter Linux das alles überhaupt ermöglicht. Gemeint ist damit das wählen von Tracks, abspielen, pausieren, stoppen, Lautstärke bestimmen usw. – und komplett kabellos ganz einfach vom z.B. Smartphone aus. Die Ausgabe geschieht dabei am oDroid XU4. Die Steuerung läuft dabei direkt über den normalen Spotify Client. Zusätzlich verwenden wir raspotify als Wrapper. Dieses kleine Programm ist eigentlich für den Raspberry Pi entwickelt worden, läuft aber auch ohne Probleme unter Ubuntu auf dem oDroid XU4 und kümmert sich um die komplette Installation von librespot und vereinfacht die Verwaltung davon.

Einkaufsliste

Spotify Premium Mitgliedschaft (9,99 €/Monat)

Externe USB-Soundkarte* (~5-10 €)

* hierbei handelt es sich um Affiliatelinks. Das bedeutet, dass ich im Falle eines Kaufes Ihrerseits einen geringen Prozentsatz des Kaufpreises als Vermittlungsgebühr erhalte. Für Sie entstehen dabei keinerlei Mehrkosten.

Im Gegensatz zum Raspberry Pi hat der oDroid XU4 keinen AUX-Anschluss. Fairerweise muss man aber auch sagen, dass man den Audio-Port bei dem Raspberry Pi für solch eine Anwendung vergessen kann, da daraus ein reines Knirschen und Gerausche kommt. Empfehlen kann ich den oben verlinkten USB-Adapter von CSL, der für den Preis von aktuell 6,25 € fast unschlagbar ist und ohne Aufwand unter Ubuntu läuft. Einfach nur reinstecken und fertig.

oDroid XU4 Raspotify installieren

Mit folgendem Snippet, dass ihr einfach in die Shell kopieren könnt, installieren wir Raspotify (inkl. Librespot), ein paar Abhängigkeiten und alsa-utils, das uns die Konfiguration im nächsten Schritt erleichtern wird.

sudo apt update sudo apt install -y alsa-utils curl apt-transport-https curl -sSL https://dtcooper.github.io/raspotify/key.asc | sudo apt-key add -v - echo 'deb https://dtcooper.github.io/raspotify jessie main' | sudo tee /etc/apt/sources.list.d/raspotify.list sudo apt update sudo apt install -y raspotify 1 2 3 4 5 6 7 8 sudo apt update sudo apt install - y alsa - utils curl apt - transport - https curl - sSL https : // dtcooper .github .io / raspotify / key .asc | sudo apt - key add - v - echo 'deb https://dtcooper.github.io/raspotify jessie main' | sudo tee / etc / apt / sources .list .d / raspotify .list sudo apt update sudo apt install - y raspotify

Im Anschluss könnt ihr mit ps aux | grep librespot überprüfen, ob der Daemon läuft und alles funktioniert hat.

oDroid XU4 Spotify Client konfigurieren

Spätestens jetzt ist der Zeitpunkt gekommen, an dem ihr die USB-Soundkarte und die Boxen an den oDroid XU4 anschließen solltet. Zu aller erst müssen wir herausfinden, als welche Cardnumber unsere USB-Karte erkannt wird. Dazu nutzen wir den Befehl aplay -l den wir durch alsa-utils mitinstalliert haben:

root@odroid:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: OdroidXU4 [Odroid-XU4], device 0: Primary multicodec-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0 1 2 3 4 5 6 7 8 root @ odroid : ~ # aplay -l **** List of PLAYBACK Hardware Devices **** card 0 : OdroidXU4 [ Odroid - XU4 ] , device 0 : Primary multicodec - 0 [ ] Subdevices : 1 / 1 Subdevice #0: subdevice #0 card 1 : Device [ USB PnP Sound Device ] , device 0 : USB Audio [ USB Audio ] Subdevices : 0 / 1 Subdevice #0: subdevice #0

Bei mir ist zu sehen, dass es sich um Card 1 handelt. Das Subdevice ist dann 0. In meinem Fall also folgendes merken: 1,0. Diese Kombination benötigen wir im nächsten Schritt.

Um Raspotify zu konfigurieren, öffnen wir die Konfigurationsdatei unter /etc/default/raspotify und passen diese nach unseren Wünschen an. Im folgenden seht ihr einmal meine Konfiguration:

# /etc/default/raspotify -- Arguments/configuration for librespot # Device name on Spotify Connect DEVICE_NAME="oDroid" # Bitrate, one of 96 (low quality), 160 (default quality), or 320 (high quality) BITRATE="320" # Additional command line arguments for librespot can be set below. # See `librespot -h` for more info. Make sure whatever arguments you specify # aren't already covered by other variables in this file. (See the daemon's # config at `/lib/systemd/system/raspotify.service` for more technical details.) # # To make your device visible on Spotify Connect across the Internet add your # username and password which can be set via "Set device password", on your # account settings, use `--username` and `--password`. # # To choose a different output device (ie a USB audio dongle or HDMI audio out), # use `--device` with something like `--device hw:0,1`. Your mileage may vary. # OPTIONS="--username XXXXXXX --password XXXXXXX --device hw:1,0" # Uncomment to use a cache for downloaded audio files. Cache is disabled by # default. It's best to leave this as-is if you want to use it, since # permissions are properly set on the directory `/var/cache/raspotify'. CACHE_ARGS="--cache /var/cache/raspotify" # By default, the volume normalization is enabled, add alternative volume # arguments here if you'd like, but these should be fine. VOLUME_ARGS="--enable-volume-normalisation --linear-volume --initial-volume=10" # Backend could be set to pipe here, but it's for very advanced use cases of # librespot, so you shouldn't need to change this under normal circumstances. #BACKEND_ARGS="--backend alsa" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # /etc/default/raspotify -- Arguments/configuration for librespot # Device name on Spotify Connect DEVICE_NAME = "oDroid" # Bitrate, one of 96 (low quality), 160 (default quality), or 320 (high quality) BITRATE = "320" # Additional command line arguments for librespot can be set below. # See `librespot -h` for more info. Make sure whatever arguments you specify # aren't already covered by other variables in this file. (See the daemon's # config at `/lib/systemd/system/raspotify.service` for more technical details.) # # To make your device visible on Spotify Connect across the Internet add your # username and password which can be set via "Set device password", on your # account settings, use `--username` and `--password`. # # To choose a different output device (ie a USB audio dongle or HDMI audio out), # use `--device` with something like `--device hw:0,1`. Your mileage may vary. # OPTIONS = "--username XXXXXXX --password XXXXXXX --device hw:1,0" # Uncomment to use a cache for downloaded audio files. Cache is disabled by # default. It's best to leave this as-is if you want to use it, since # permissions are properly set on the directory `/var/cache/raspotify'. CACHE_ARGS = "--cache /var/cache/raspotify" # By default, the volume normalization is enabled, add alternative volume # arguments here if you'd like, but these should be fine. VOLUME_ARGS = "--enable-volume-normalisation --linear-volume --initial-volume=10" # Backend could be set to pipe here, but it's for very advanced use cases of # librespot, so you shouldn't need to change this under normal circumstances. #BACKEND_ARGS="--backend alsa"

DEVICE_NAME – Unter diesem Namen wird der Client dann in eurem Spotify Client auf dem Smartphone oder Rechner auftauchen.

BITRATE – Die gewünschte Bitrate. Viel hilft viel, also habe ich dort mal großzügig 320 eingetragen. Solltet ihr Probleme haben mit Laggs oÄ. könnt ihr mal versuchen die Bitrate auf 160 oder 96 runterzusetzen.

OPTIONS – Hier kann man seinen Benutzernamen (falls man über Facebook eingeloggt ist, findet man seinen Benutzernamen hier heraus) und Passwort hinterlegen. Das ermöglicht die Fernsteuerung, auch wenn man außerhalb des eigenen Heimnetzes ist und keine direkte Verbindung mit dem oDroid aufnehmen kann. Möchte man seine Nutzerdaten nicht in einer Konfigdatei hinterlegen, kann man die beiden Argumente einfach weglassen. Am Ende geben wir unser gewünschtes Ausgabegerät an. Dazu erinnern wir uns an die Cardnumber und Subdevice-ID von oben. Diese dann einfach mit einen Komma voneinander trennen und dort eintragen wie in meiner Konfig zu sehen.

CACHE_ARGS – Für Raspotify kann man einen Cache anlegen. Das ermöglicht langfristig schnellere Wechsel zwischen Liedern und schnelleres Laden von Tracks. Außerdem schont man damit die Leitung, wenn man parallel noch zocken möchte. 🙂 Lässt man die Einstellung auskommentiert, werden die Tracks ausschließlich gestreamt.

BACKEND_ARGS – Man kann mit verschiedenen Backends noch die Tonspur anpassen. Ich bin aber kein Tontechniker, deshalb habe ich da weder Ahnung noch Erfahrung von. Jeder, der sich damit auskennt, sollte an dieser Stelle wissen, was zu tun ist. Ich habe es einfach auskommentiert gelassen.

Das war es auch schon mit der oDroid XU4 Spotify Konfiguration. Anschließend noch den Daemon mit systemctl restart raspotify neustarten und den Spotify Client bei sich starten starten. Auf meinem Laptop sieht das dann unten rechts so aus:

Einfach das Gerät anwählen, Track auswählen und Play drücken. Das war es soweit dann auch schon. Hat alles funktioniert? Teilt es mir in den Kommentaren mit, wenn ihr auf Probleme stoßt und wie euer oDroid XU4 Spotify Player läuft!

Ähnliche Beiträge: