[Modul] Spotify 1.1

Also da muss man vielleicht unterscheiden zwischen Geräten, auf denen ich Spotify installiert und mich dort angemeldet habe:

  • iPhones (iOS)
  • Echo Dots 2
  • FireTV Sticks 4K (Max)
  • Windows-App
  • Browser

Und Geräten, die ich regelmäßig aktiv nutze:

  • Echo Dots 2
  • iPhones (iOS)

Wie so oft kommen die 503-Fehler bei mir aber, wenn Spotify gerade nirgendwo aktiv genutzt wird.
Ansonsten finde ich in den letzten Tagen einige Fehlermeldungen, wo Spotify gerade auf den Echo Dots 2 lief.

Sind denn eher die Geräte relevant, auf denen die Musik abgespielt wird oder ggf. auch die, die zum Steuern von anderen Geräten genutzt werden?

Es sind Geräte relevant, die Spotify „bereitstellen“. Also wenn die Windows App beispielsweise im Hintergrund läuft, könnte sie den Fehler verursachen, auch wenn sie nicht aktiv genutzt wird.

Dann würde ich sagen, dass im Moment nur diese Geräte in Frage kommen:

  • Echo Dot 2
  • iPhone (iOS)

Wie häufig tritt das denn bei dir auf? Kannst du beispielsweise die Echos mal vom Netz nehmen und schauen ob der Fehler immer noch kommt oder müsstest du da eher ein paar Tage warten?

Puh, das ist ganz unterschiedlich. Mal liegen zwischen den Fehlern einige Minuten, dann wieder mehrere Stunden oder Tage.

Ich schaue mal, ob ich das irgendwie eingrenzen kann. Sind recht viele Echos, die ich vom Netz nehmen müsste und wenn die länger Weg sind, gibt’s Stress mit der Familie. :wink:

Gibt es eine Möglichkeit, die Meldungen aus dem Status-Widget per Skript abzufragen? Also nicht nur den Typ, sondern auch den Inhalt? Dann könnte ich mir ne Push-Nachricht senden, wenn der Fehler auftritt. Sonst muss ich ja den ganzen Tag vor der Konsole hängen…

Oder ich muss zum Testen das Modul anpassen, dass ich ne Meldung bekomme. Ist vermutlich einfacher.

Da kommst via UC_GetLastLogMessages($utilControlID, 4); an die Fehlermeldungen des Status-Widget. Ich hoffe du kannst es einschränken :slight_smile: Aber ja, ich verstehe, dass das kompliziert sein kann.

Hallo Niels,

vielen Dank für die SPO_MakeAPIRequest Funktion.
Was ist den mit „Body“ gemeint, was trage ich dort ein?

Viele Grüße
Markus

Hallo Niels,

jetzt funktioniert es… du hast wohl noch einen Fehler im Modul.

Wenn ich im PHP-Script die Funktion einfüge hab ich folgende Parameter

SPO_MakeAPIRequest(28983, "Body", "Methode", "Url");

Richtig laut der Funktion in der Moduldatei sollte es aber wie folgt aussehen

MakeRequest($method, $url, $body = '', $ignoreErrors = false)

Der Body muss quasi an die 3. Position der Parameter

Dann ist mir aufgefallen, dass in der URL das „v1“ entfernt werden sollte… in der Api-Beschreibung
lautet die URL zum Beispiel /v1/me/player/next. Damit es funktioniert muss man das v1 weglassen weil es anscheinend in der Funktion automatisch mitgegeben wird.

So funktioniert es einwandfrei.

SPO_MakeAPIRequest(12345, "POST", "me/player/next", "");

Vielen vielen Dank, jetzt ist das Modul absolut perfekt

MakeAPIRequest und MakeRequest haben leicht unterschiedliche Parameter. MakeRequest ist halt die intern genutzte Funktion, MakeAPIRequest die öffentliche. Dennoch sollte Body der letzte Parameter sein und nicht der zweite. Ich glaube, da hast du die Reihenfolge verdreht. Der Body ist für manche Aufrufe benötigt, beispielsweise Transfer Playback | Spotify for Developers. Wenn der nicht benötigt wird, dann lässt du den String einfach leer.

Und ja, das v1 wird ebenso wie api.spotify.com hinzugefügt, da wir ja nun einmal v1 der API nutzen :slight_smile: Das ist auch so dokumentiert. Du sollst ja nicht das Spotify-Modul missbrauchen um irgendwelche ganz anderen Endpunkte abzufragen.

Hi Niels,

danke für die Rückmeldung !!

Wenn ich im php-Script über „Befehl einfügen“ die Felder ausfülle bekomme eine Fehlermeldung.
Man sieht, dass POST an die Url angehangen wird.

SPO_MakeAPIRequest(28983, "", "POST", "me/player/next");

Warning: file_get_contents(https://api.spotify.com/v1/POST): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
 in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 839

wenn ich den „Body“ an die letzte Position setzte funktioniert es einwandfrei

SPO_MakeAPIRequest(28983, "POST", "me/player/next", "");

Viele Grüße
Markus

Da greift das Auslesen der Parameter irgendwie nicht richtig, das schaue ich mir an. Body nach hinten ist auch korrekt.

Ich habe jetzt mal über zwei Monate versucht, die HTTP 503 Fehler einzugrenzen. So richtig gelingt es mir aber nicht. Die kommen weiterhin in schöner Regelmäßigkeit, ohne dass ich irgendwelche Einschränkungen feststellen könnte.

Das einzige was ich sicher sagen kann ist, dass die Fehler häufiger auftreten, wenn die Echo Dots 2 gerade Musik abspielen. Das nur als Ergänzung zu meiner ursprünglichen Frage von Anfang Oktober.

Hallo,

seit paar Tagen kommt oft die Fehlermeldung:

03.01.2023, 09:17:27 | TimerPool            | Spotify (UpdateTimer): 
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 839

Warning: file_get_contents(https://api.spotify.com/v1/me/player/devices): failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 839

Fatal error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php:893
Stack trace:
#0 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(893): json_decode(false, true)
#1 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(513): Spotify->UpdateDevices()
#2 /var/lib/symcon/scripts/__generated.inc.php(10655): Spotify->UpdateVariables()
#3 /-(1): SPO_UpdateVariables(35066)
#4 {main}
  thrown in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on line 893

Gruß

Laut einer kurzen Recherche kommt die Fehlermeldung, wenn der Server nicht erreichbar ist. Ist deine Internetverbindung vielleicht instabil? Oder haben andere den Fehler auch? Dann ist vielleicht bei Spotify irgendwas gerade nicht ganz in Ordnung…

Funktioniert das Modul ansonsten aber?

Hallo Dr. Niels,
bekomme seit ein paar Tagen einige Fehlermeldungen, Premium Konto vorhanden. Wenn ich die Instanz von Spotify öffnen möchte kommt diese Meldung:

16.01.2023, 10:37:01 | PHP                  | Error: Warning: file_get_contents(https://api.spotify.com/v1/me/playlists): failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable

   Error in Script /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on Line 839
  137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   37 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
  839 in modules/.store/de.symcon.spotify/Spotify/module.php (call file_get_contents)
  149 in modules/.store/de.symcon.spotify/Spotify/module.php (call MakeRequest)
    3 in /- (call GetConfigurationForm)
16.01.2023, 10:37:01 | PHP                  | Error: Error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php:149
Stack trace:
#0 /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php(149): json_decode(false, true)
#1 /-(3): Spotify->GetConfigurationForm()
#2 {main}
  thrown
   Error in Script /var/lib/symcon/modules/.store/de.symcon.spotify/Spotify/module.php on Line 149
  137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   33 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler

Habe auch nichts am Account geändert wie PW oder so.

Na toll, das ist natürlich wieder nur bei dir. Bei mir klappt das einwandfrei. 503 ist eigentlich ein Fehler bei Spotify. Hast du irgendwelche neuen Geräte zur Wiedergabe oder dergleichen? Vielleicht macht da was Probleme?
Ich wüsste echt gerne, was den Fehler verursacht damit ich damit irgendwie umgehen kann, aktuell kann ich da aber nicht wirklich etwas anbieten :frowning:

Ich habe mich heute mittag auf meinem Windows Rechner bei Spotify ab und neu angemeldet und dann ging das wieder bei Symcon. Muss also was mit der An/Abmeldung zu tun haben.

Ich habe erst seit einigen Tagen ein Spotify Duo Account , welchen ich mit meiner Tochter nutze. Ich habe zwei Instanzen angelegt, 1 x ich, 1 x meine Tochter. Den 503 Fehler habe ich auch sehr oft. Auch wenn gerade Musik über Spotify läuft, der Dienst also erreichbar ist.

Wenn dieser Fehler auftritt ist die Geräte Liste auch nicht übersetzt, dh. ich sehe nur eine lange Zahlen/ Buchstaben Reihe statt der Geräte:

image

Gruß,
Loerdy

Moin Moin,
was muss ich hier noch auswählen um die Geräte zu sehen?

@loerdy Da die Verbindung mit dem Spotify-Modul über OAuth läuft, kannst du leider nicht mit zwei Konten arbeiten. Dann würden beide Spotify-Instanzen bei der letzten Anmeldung hängen bleiben. Nutzt du Spotify auch auf einem Windows-Rechner? Und kannst du sonst mal wie @Stefan71 ausprobieren dich dort ab- und wieder anzumelden? Und ansonsten kannst du die Anfrage ja auch mal hier testen: Get Available Devices | Spotify for Developers Dann kannst du mal schauen, ob dort auch der 503er kommt oder ob das aus irgendwelchen Gründen nur im Modul passiert.

@Stefan71 Wie der Dialog suggeriert, brauchst du user-read-playback-state.

1 „Gefällt mir“