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.

Dankzij de gratis optie om ontwikkelaarstoegang in te stellen, heb je ook toegang tot veel van deze functies vanuit NodeRed. Met een paar slim gekoppelde nodes kun je eenvoudig je eigen "Spotify-afstandsbediening" maken voor (bijvoorbeeld) het dashboard.

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/

Nadat u zich hebt aangemeld met uw accountgegevens, moet u eerst de "Algemene voorwaarden" accepteren of bevestigen.

Klik dan op "App maken"...

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

Je wordt dan doorgestuurd naar het overzicht van deze "app" (zo noemt Spotify de ontwikkelaarsaccounts die zijn ingesteld). Daar vind je aan de linkerkant de "ClientID" en de "ClientSecret". Deze heb je later allebei nodig, dus noteer ze nu.

Nadat je in het overzicht op "Instellingen bewerken" hebt geklikt, kom je in de getoonde weergave terecht. Daar moet je nu de juiste "Redirect Uri" invoeren. Deze redirect uri is afhankelijk van het adres van je NodeRed server.

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).

Zodra je de juiste link hebt ingevoerd, hoef je alleen nog maar op "Toevoegen" en (verderop) op "Opslaan" te klikken.


NodeCode invoegen

Nu de eigenlijke NodeCode. Deze bevat de besturing van de eenvoudigste functies in de hieronder getoonde vorm. Je kunt het afspelen pauzeren en hervatten, het volgende of vorige nummer selecteren, door het nummer "scrollen" en de albumhoes wordt ook weergegeven.

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.

Nu moet je je ClientID invoeren in het tekstveld naast "ClientID" en je Client secret in het tekstveld naast "Client secret".

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

Vervolgens moet je de gewenste "Scopes" invoeren. Scopes staan voor de services die je vanuit NodeRed wilt aansturen.

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/

Zodra je de scopes hebt ingevoerd, hoef je alleen nog maar op "Start Authentication" te klikken.

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

Als je op dit punt een foutmelding krijgt, kun je een oplossing vinden in de paragraaf "Oplossing voor fout "INVALID_CLIENT: Invalid redirect URI"" 🙂 .

Nadat je dit hebt bevestigd, word je doorgestuurd naar een website waar alleen de korte melding "spotify: authorised" wordt weergegeven.


Oplossing voor fout "INVALID_CLIENT: Ongeldige 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

In principe wordt de fout veroorzaakt doordat de "Redirect URI" niet correct is geconfigureerd in het ontwikkelaarsaccount. Om de juiste redirect URI te verkrijgen, kunt u de volgende truc gebruiken.

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.

Lang verhaal kort: Als je deze fout ook ervaart: Bij mij hielp het om de computer waarop NodeRed draait opnieuw op te starten of, in het "ergste geval", het Spotify-account te ontkoppelen.


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. Bekijk hoe je reactie-gegevens worden verwerkt.