HowTo: Node Red – Bedien Spotify vanuit NodeRed

Wat ik echt waardeer aan Spotify is de goede connectiviteit. Je kunt met een paar klikken muziek of podcasts op een ander apparaat afspelen of bedienen.

Dank der kostenlosen Möglichkeit einen Developer Zugang einzurichten, kann man auf viele dieser Funktionen auch aus NodeRed zugreifen. So kann man sich mit ein paar klug verknüpften Nodes ganz leicht eine eigene „Spotify-Fernbedienung“ für (zum Beispiel) das Dashboard erstellen.

Natuurlijk zijn de besturingsopties niet beperkt tot het dashboard. Je kunt de besturingsoptie ook activeren via aangesloten knoppen of andere opties, bijvoorbeeld 🙂 .

Een eerste benadering hiervan vind je in het volgende artikel.


Eisen

Handige artikelen:
Om nieuwe nodes te kunnen installeren, moet NodeRed natuurlijk al geïnstalleerd zijn.
Hoe je een RaspberryPi voorbereidt en vervolgens NodeRed erop installeert, wordt beschreven in de volgende artikelen.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:

Vereist gereedschap:
-Nee-

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Log in op de configuratie-interface van NodeRed

Voordat u uw NodeRed-configuratie kunt bewerken, moet u - indien geactiveerd - eerst inloggen op de NodeRed-configuratie-interface.

Weergave van het aanmeldingsvenster. Hier moet u de inloggegevens invoeren die u tijdens de configuratie van de login hebt opgegeven. Informatie hierover vind je in het artikel NodeRed - gebruikersaanmelding instellen.

dankzegging

Allereerst dankzij gel2002 voor zijn flow. De NodeCode die hieronder wordt aangeboden is gebaseerd op zijn vrijelijk gedeelde code. Ik heb alleen een paar (naar mijn mening nuttige) uitbreidingen toegevoegd. Maar het belangrijkste werk is gedaan door gelo2002 🙂 .

Informatie over zijn flow is hier te vinden:
https://gist.github.com/gelo2002/1727790dfc3f6bac8c5b39f5a952b804
of hier
https://flows.nodered.org/flow/1727790dfc3f6bac8c5b39f5a952b804


Activeer Spotify-ontwikkelaarsaccount

Om de verschillende functies van je Spotify account te kunnen bedienen, moet je eerst een ontwikkelaarsaccount aanmaken voor je Spotify account. Dit kost niets en is met een paar klikken gedaan 🙂

Ga hiervoor naar de startpagina van uw Spotify Developer Portal. Dat kan via de volgende link:

https://developer.spotify.com/dashboard/

Nach dem einloggen mit Euren Accountdaten müsst Ihr zunächst die „Bedingungen“ akzeptieren bzw. bestätigen.

Klickt danach auf „Create App“…

...en voer een naam en een passende beschrijving in. Je kunt beide naar eigen inzicht kiezen, maar ze moeten natuurlijk wel redelijk betekenisvol zijn 🙂

Danach werdet Ihr auf die Übersicht dieser „App“ (So nennt Spotify die eingerichteten Developer Zugänge) weitergeleitet. Dort findet Ihr auf der linken Seite bereits die „ClientID“ und das „ClientSecret“. Beides benötigt Ihr später als notiert Sie Euch schonmal.

Nachdem Ihr in der Übersicht auf „Edit Settings“ geklickt habt, werdet Ihr auf die dargestellte Ansicht geleitet. Dort müsst Ihr nun die passende „Redirect Uri“ eintragen. Diese Redirect Uri hängt von der Adresse Eures NodeRed-Servers ab.

Staat dit bijvoorbeeld op het adres https://server.fritz.box de redirect uri zou als volgt zijn:

https://server.fritz.box:1880/spotify-credentials/auth/callback

Zorg ervoor dat je het juiste protocol selecteert (bijvoorbeeld http of https).

Habt Ihr den korrekten Link eingetragen, müsst Ihr nur noch auf „Add“ und (weiter unten) auf „Save“ klicken.


NodeCode invoegen

Nun zum eigentlichen NodeCode. Dieser beinhaltet in der unten stehenden Form die Steuerung der einfachsten Funktionen. Ihr könnt also die Wiedergabe pausieren und fortsetzen, den nächsten oder vorherigen Titel anwählen, im Lied „scrollen“ und bekommt auch das Album-Cover angezeigt.

Zoals altijd kun je de NodeCode vinden in het volgende deel en ook in de Nerdiy Git-repository op:

Weergave van de NodeRed-stroom.
Dashboardweergave.

Voer accounttoegangsgegevens in NodeRed in

Nadat je een ontwikkelaarsaccount hebt aangemaakt voor je Spotify en de NodeCode hebt ingevoerd, kun je nu overschakelen naar je NodeRed-configuratie. Klik daar op een van de Spotify nodes en begin met het configureren van een nieuw account.

Nun müsst Ihr im Textfeld neben „ClientID“ Eure ClientID und im Textfeld neben „Client secret“ Euer Client secret eintragen.

Je vindt beide in de vorige stap in je Spotify Developer-toegang.

Als nächstes müsst Ihr die gewünschten „Scopes“ eintragen. Scopes stehen für die Services, welche Ihr aus NodeRed steuern wollt.

Je kunt hier de volgende scopes voor deze flow invoeren:

streaming user-follow-wijzig user-read-huidig-playing user-modify-playback-status

Een volledige lijst is te vinden op: https://developer.spotify.com/documentation/general/guides/authorization/scopes/

Sobald Ihr die Scopes eingetragen habt, müsst Uhr nun nur noch auf „Start Authentication“ klicken.

Er wordt nu een nieuw venster geopend waarin je moet bevestigen dat je NodeRed toegang geeft tot je Spotify account.

Falls Ihr an dieser Stelle eine Fehlermeldung erhaltet, könnt Ihr eine Lösung im Absatz „Lösung für Fehler „INVALID_CLIENT: Invalid redirect URI“ finden. 🙂

Nachdem Ihr dies bestätigt habt, werdet Ihr auf eine Webseite weitergeleitet, auf der lediglich die kurze Meldung „spotify: authorized“ angezeigt.


Lösung für Fehler „INVALID_CLIENT: Invalid redirect URI“

De oplossing voor de foutmelding: INVALID_CLIENT: Invalid redirect URI vond ik hier: https://github.com/pckhib/node-red-contrib-spotify/issues/16

Im Prinzip wird der Fehler dadurch hervorgerufen, dass die zuvor im Developer Account die „Redirect URI“ nicht korrekt konfiguriert wurde. Um die korrekte Redirect URI zu erhalten, könnt Ihr den folgenden Trick nutzen.

Voer uw URI in de URL-decoder in (https://www.urldecoder.org/) en laat ze decoderen.

Het gemarkeerde deel in het onderste veld komt dan overeen met de redirect URI, die je moet invoeren in je Spotify-account.


Het afspelen van Spotify slaat soms over of hapert

Van tijd tot tijd slaat het afspelen op een van mijn apparaten over of stopt het. Met vallen en opstaan ben ik erachter gekomen dat dit te maken heeft met de koppeling van het Spotify-account met externe services (bijvoorbeeld de hier gepresenteerde NodeCode).

Achteraf verklaar ik dit als volgt: omdat Spotify de afspeelgegevens op alle aangesloten apparaten gesynchroniseerd wil houden, kan ik me voorstellen dat een apparaat dat te traag reageert deze synchronisatie kan verstoren.

Lange Rede Kurzer Sinn: Wenn Ihr diesen Fehler auch beobachtet: Bei mir hat es geholfen den Computer auf dem NodeRed läuft neu zu starten oder im „Worst case“ die Verknüpfung mit dem Spotify Account wieder aufzuheben.


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

7 comments

  1. Heb je Playback Transfer naar een ander apparaat werkend gekregen? In de voorlaatste versie stuurde je domweg de apparaat-ID en het afspeelcommando naar de TransferMyPlayback API - nu gebeurt daar niets.

    1. Hé Steven,
      Ik heb het eigenlijk nog niet geprobeerd. Heb je de Spotify API gecontroleerd om te zien of er informatie over is?
      Hartelijke groeten
      Fabian

  2. Hallo fantastisch,

    Ik vroeg me af hoe je een afspeellijst of nummer selecteert om mee te beginnen? Ik ben een beetje in de war hierover. Het lijkt erop dat je op de een of andere manier het Spotify-knooppunt al hebt geconfigureerd om een afspeellijst/nummer te krijgen.

    1. Hallo Asad,
      momenteel gebruik ik dit alleen om informatie weer te geven over het nummer dat momenteel wordt afgespeeld. Het selecteren van het nummer en co gaat via de smartphone/desktop app van spotify. Toch is het ook mogelijk om dit via de spotify node te doen. 🙂
      hartelijke groeten
      Fab

      1. Bedankt voor je reactie. Ik ben een beetje in de war over hoe je dat zou inschakelen. Er lijkt geen specifieke manier te zijn om dit te doen. Heb je een tutorial die het nummer selecteert via het Spotify-knooppunt?

        Bedankt,
        Asad

        1. Hallo Asad,
          jammer genoeg nog niet). Maar ik zal het op mijn lijstje zetten en binnenkort proberen zoiets voor te bereiden. 🙂
          hartelijke groeten
          Fab

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Lees hoe uw commentaargegevens worden verwerkt.