Hallo Community,
meinen Einstand im Forum möchte ich mit einem Tutorial begehen.
Ich möchte hier mal ein kleines Tutorial schreiben über einen Spotify Connect Server(SCS).
Folgendes kann der SCS:
- Spotify Connect
- Autostart
- Headless betrieb
Desweiteren kann man den SCS von jedem Spotify Client ansteuern. Ein kleines Gimmick ist, dass der SCS die Verbindung zu den Spotify Servern hält, auch wenn, das Gerät von dem er angesteuert wurde ausgeschaltet respektive beendet wird. Der Raspi mit dem SCS Startet automatisch, muss nur richtig runtergefahren werden.
Den eigentlichen Code und das Skript habe ich aus dem GitHub von Fornoth( https://github.com/Fornoth/spotify-connect-web ).
So jetzt zu den Vorbereitungen:
Wir benötigen:
- einen Spotify Premiumaccount
- Einen Spotify App Key ( https://devaccount.spotify.com/my-account/keys/ )
- Spotify Nutzername und Passwort(Dazu schreibe ich unten nochmal was als Anmerkung)
- ein Raspbian Jessie
- eine eingerichtete Netzwerkverbindung
- einen Nutzer, der sich automatisch auf die Shell einloggt ohne X
- in meinem Fall die Audioausgabe auf den 3,5mm Klinkeausgang legen
Downoad und Installation des Programms:(Diesen Block muss man nur ein mal abarbeiten):
#1. Hier holen wir das Skript
curl -O http://spotify-connect-web.s3-website.eu-central-1.amazonaws.com/spotify-connect-web.sh
#2. Das Skript wird ausführbar gemacht
chmod u+x spotify-connect-web.sh
# Downloade die aktuelle changeroot (~ 180 MB)
./spotify-connect-web.sh install
# Kopiere deinen `spotify_appkey.key` in das Programmverzeichnis.
sudo cp spotify_appkey.key spotify-connect-web-chroot/usr/src/app/
Ausführen des Servers: (Dies ist der eigentliche Programmaufruf):
# Das Programm mit normalen Optionen laufen lassen bitte username und password mit euren Daten ersetzen.:
./spotify-connect-web.sh --username 12345678 --password xyz123 --bitrate 320 --name RasPIiConnect
Testlauf:
Wenn Ihr hier angekommen seid könnt ihr einen ersten Testlauf machen und das Skript ausführen. Wenn alles glatt gegangen ist solltet Ihr den Raspi zB. am Smartphone oder so sehen in Spotify, als Connectgerät.
Autostart:
Das Ganze soll aber noch nicht genug sein, da Ihr ja jedes mal den Pi und das Skript händisch Starten müsstet.
Darum machen wir das Skript autostartfähig, so dass Ihr den Raspi nur einschalten braucht, ohne Monitor und Tastatur.
Der Einfachheit halber und um Tippfehler zu vermeiden, machen wir uns ein kleines Skript aus dem Aufrufbefehl und machen es global ausführbar:
Gehe in einen Editor deiner Wahl und füge folgendes ein:
(Kleiner Tipp am Rande: Das ganze bitte als User pi machen und nicht mit sudo, sonst gibt es später Probleme)
#!/bin/bash
/home/pi/./spotify-connect-web.sh --username 12345678 --password xyz123 --bitrate 320 --name RasPIiConnect
exit 0
speichere es unter scs
jetztmachen wir das skript ausfühbar:
und Kopieren es nach /usr/bin/
Nun könnt Ihr ohne euch die Finger zu verbiegen aus jedem Verzeichnis heraus einfach "scs" eintippen und das Skript startet.
Für den Autostart gebt es verschiedene Lösungen für mich hat am besten folgende Funktioniert:
man füge folgendes an die /home/pi/.bashrc an:
Das hat folgende Auswirkung:
Wenn der Pi hochfährt meldet er eine shell unter dem Benutzer pi an, dann wartet er 30 Sekunden und startet das scs-skript
Wer gut aufgepasst hat wird jetzt sagen: Ja aber...! Dazu Sage ich: macht in diesem Falle nix da wenn man eine weitere shell öffnet, wird natürlich ein weiteres mal scs ausgeführt, dass merkt aber das skript und beendet sich.
Soooo. Geschafft. Zum test ein reboot und der Pi Sollte in SpotifyApps als ConnectGerät sichtbar sein.
Nachtrag zu den Spotify Benutzernamen und Passwörtern:
Wer sich bei Spotify mit FB angemeldet hat muss sich zunächst ein "Gerätekennwort" zuweisen lassen. Man macht das auf http://www.spotify.com loggt sich ein und zur linken Hand im Menu steht was von gerätekennwort. Man bekommt ne Nummer angezeigt,das ist der Username.
Hier kommt aber ein KNACKPUNKT wenn man die mail anfordert und dem Link folgt, kann man da ein PW eingeben. Da bekommt man aber eine Fehlermeldung, von wegen "Kennwort konnte nicht festgelegt werden".
Diese Meldung bitte ignoriegen, das Kennwort wird trozt "Falschem Fehler" gesetzt.
Falls sich hier Fehler eingeschliichen haben, oder Ihr Verbesserungsvorschläge habt, ich bin für kontruktive Kritik immer offen.