Je 35 nummers voor de top 2000... volgens de Spotify API!

Ingediend door Dirk Hornstra op 01-dec-2021 22:01

Het is weer de tijd van het jaar, tot vrijdag 3 december 16.00 uur kun je hier stemmen op jouw 35 favoriete nummers van 2021. Ik stem meestal op artiesten die ik dat jaar bij een concert bezocht heb of het komende jaar ga bezoeken. En als fan van Michael Jackson zorg ik bijna altijd wel dat er 1 of meerdere nummers van de King of Pop in de lijst komen.

Maar eigenlijk klopt het niet. Want je scrollt wat, denkt: dat is een mooi nummer en zo vul je de lijst. Maar ik luister bijna alleen maar naar muziek via Spotify. En die kan dus eigenlijk beter laten zien welke nummers ik het afgelopen jaar het meest beluisterd heb. Daar zou ik eigenlijk een lijstje van moeten uitdraaien om te kunnen zeggen: "dit zijn mijn nummers van 2021".

Eerst gezocht of Spotify een API heeft, en ja, die is er: de web-API.

  • Klik op de Dashboard link en kom in een scherm waar jouw apps (waarschijnlijk leeg) getoond worden.
  • Klik op Create an App, naam + omschrijving invullen en sla deze op.
  • Je krijgt dan in het scherm met details van je nieuwe App de clientID te zien, door op het linkje te klikken wordt ook het verborgen clientSecret getoond. Deze gegevens zijn voldoende om een App aan te sturen.
  • Oh ja, je moet nog wel even naar Edit Settings en een Redirect URIs invullen. In mijn geval heb ik https://localhost:1337/callback ingevuld. Dat is geen bestaande site die ergens op draait, maar ik moet een URL hebben waar je na een succesvolle inlog + akkoord gaan met de voorwaarden naartoe gestuurd wordt. In die URL staat namelijk een code=.... en die code heb je nodig om een token op te halen. Met dat token kun je vervolgens jouw gegevens opvragen. Let op dat je wel de juiste scope(s) toevoegt: link.
     

Op Github staat een voorbeeld-project: link. Hoewel ik "even snel" een console app in elkaar ga zetten (met C#) is de structuur die daarin staat wel te gebruiken.

Maar ik zie ook dat de data die je op kunt vragen beperkt is. Bij de user kun je de Top Items opvragen. Met 3 smaken, short_term: afgelopen 4 weken, medium_term: 6 maanden en long_term: meerder jaren aan data, bijgewerkt tot recent: link.

Dus hoewel ik misschien niet helemaal "alleen 2021 nummers" filter, download ik alle 3 de opties. Let op: je kunt hier maximaal 50 per type opvragen.

Ik heb de code van mijn console applicatie op Github gezet. Dus wil jij hetzelfde doen, "even" jouw nummers opvragen, maak die app aan in Spotify (zie bovenstaande stappen), clone mijn project: HIER! , pas je App.config aan, open deze in Visual Studio, compilen, runnen en gaan met die banaan!

Of je checkt de 2021 wrapped die Spotify je nu (als het goed is) aanlevert. Daarmee krijg je een playlist met de 100 nummers van afgelopen jaar.

 

Naschrift: ik heb mijn nummers ingediend, een groot deel op basis van eerder beluisterde nummers: link.

Zaten daar voor mezelf verrassingen bij? Nou, wel Fantasy van Mariah Carey. Hoe komt die in mijn lijst? En toen dacht ik, verrek, in augustus heb ik de film "Free Guy" in de bioscoop gezien en daar kwam ie in voor en toen heb ik het nummer een flink aantal keer op repeat gezet :D Toffe film trouwens: trailer.  En voor de rest heel veel artiesten die ik afgelopen jaar (of vorig jaar) al live gezien/gehoord zou hebben, maar waarvan de concerten geannuleerd of nogmaals uitgesteld zijn: Waylon, concert uitgesteld naar volgend jaar, Kensington concert uitgesteld: kaartje voor volgend jaar, The Weeknd: de man heeft zijn concert geannuleerd, Ed Sheeran: volgend jaar in de Arena, James Blunt mijn laatste concert vorig jaar, Tom Jones: weer uitgesteld naar volgend jaar, De Dijk: dit jaar op 1 oktober in Ziggo Dome bezocht, top-concert!, Elton John: volgend jaar Gelredome, Phil Collins (Genesis): volgend jaar Ziggo Dome, Snoop Dogg: volgend jaar Ziggo Dome, Andrea Bocelli: volgend jaar Ziggo Dome, Animals: volgend jaar Neushoorn, Frank Boeijen: volgend jaar in het theater, Eric Clapton: volgend jaar Ziggo Dome, The Script: volgend jaar Ziggo Dome, Guns n' Roses: volgend jaar Groningen, Kim Wilde: volgend jaar Neushoorn, Blof: volgend jaar Concert at Sea.