Hallo,
ich habe lange gerätselt, wie ich per Sprachbefehl meine Spotify Musik auf ein anderes Abspielgerät (spotify-connect) bekomme. Mit den Alexa Bordmitteln scheint das noch nicht zu gehen. Den Hinweis ich möge doch Multiroom in der APP einrichten, habe ich nicht verstanden, bzw. taucht bei mir in der APP nicht auf.
Also habe ich nach Drittanbietern gesucht, die die Spotify API umgesetzt haben, damit ich per Script das verfügbare Gerät einstellen kann und dann das Script per IQL4SmartHome Integration per Alexa starte.
Gefunden habe ich Spotipy. Damit kann man viele Spotify API Befehle absetzen und auch das Gerät zum Abspielen auswählen.
Man braucht dafür einen Spotify Developer Account (5 Min Aufwand) und Python irgendwo installiert.
Zunächst also Spotipy wie in der Anleitung installieren. Dann habe ich mir erst mal meine Device IDs mit dem Script
Client_ID, Client_Secret und redirect_uri bitte aus dem Spotify Developer Account kopieren, bzw. die redirect Uri so einrichten, wie man will (ist egal wie man sie einrichtet, da sie nicht gebraucht wird),
import sys
import spotipy
import spotipy.util as util
username='Dein_Username'
if __name__ == '__main__':
token=util.prompt_for_user_token('dein_userlogin','user-read-playback-state',client_id='deine client_id',client_secret='dein_secret',redirect_uri='http://localhost/')
if token:
sp = spotipy.Spotify(auth=token)
devices = sp.devices()
print devices
else:
print "Can't get token for", username
Dann am besten den Output kopieren und speichern
Dann pro Device ein Script anlegen
oben.py:
import sys
import spotipy
import spotipy.util as util
username='Dein_Username'
if __name__ == '__main__':
token=util.prompt_for_user_token('dein_userlogin','user-modify-playback-state',client_id='deine client_id',client_secret='dein_secret',redirect_uri='http://localhost/')
if token:
sp = spotipy.Spotify(auth=token)
result = sp.transfer_playback('Deine_Device_ID', force_play=True)
print result
else:
print "Can't get token for", username
Dann das Script über IPS einbinden:
<?
$ipnr = "Deine IP";
//SSH*Login*:*Beginn
include('/var/lib/symcon/scripts/net/Net/SSH2.php');//*ggf.*den*Pfad*anpassen
$ssh = NEW Net_ssh2($ipnr);
$username=UTF8_encode('Dein Login');
$password=UTF8_encode('Dein Passwort');
IF(!$ssh->login ($username,$password))//*Hier*der*echte*Login
{
exit('Login*Failed');
}
$result=$ssh->exec("/usr/bin/sudo python /home/nutzer/oben.py >> /dev/null");
echo $result;
?>
Dann in IQL4Smarthome, das Script referenzieren und mit einem Sprachbefehlo verknüpfen.
Schon gehts
Viel Spaß damit
Klaus