Verfügbares Spotify Gerät per Alexa auswählen

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