Ik zal het script hier met jullie delen.
Kanttekening
Ik ben zelf functioneel beheerder en heb geen programmeer ervaring. Er zullen ongetwijfeld genoeg dingen inzitten die beter, makkelijker of anders hadden gekund. Voor mij was dit een hobby project om wat ervaring op te doen en te kijken wat er allemaal mogelijk is met R. Het script is nu gebouwd voor radio2 volgens mij is het niet zo ingewikkeld om dit script ook te gebruiken voor een andere radio zender.
Hoe werkt het script?
1. Afgespeelde nummers door radio2 worden opgehaald en in een dataframe geplaatst. Eventuele dubbele afgespeelde nummers worden verwijderd.
2. Er wordt een API verbinding tot stand gebracht met een eigen aangemaakte Spotify app.
3. Het dataframe uit stap 1 wordt opgedeeld in verschillende batches. Er zit namelijk een limiet op het aantal nummers dat in 1 keer naar een afspeellijst mag worden weggeschreven. Speciale karakters in artiestennamen en titels worden tegelijkertijd vervangen.
4. Voor elk nummer wordt een request url aangemaakt.
5. Van elk nummer wordt via de aangemaakte request url de
uri (Uniform Resource Indicator) van de song via de API bij Spotify opgevraagd.
6. Voor elk nummer wordt een post url aangemaakt met hierin de
uri
7. De nummers kunnen nu weggeschreven worden naar jouw spotify afspeellijst.
TIP: maak een afspeellijst aan die je alleen gebruikt om muziek weg te schrijven. Sleep daarna handmatig vanuit Spotify in 1 keer alle nummers naar de afspeellijst die je graag wilt gebruiken. Dit heb ik zo gedaan i.v.m. dubbele nummers. Bij het verplaatsen van je muziek vraagt Spotify zelf of je dubbele nummers wilt overslaan. Dit zou evt. nog verder geautomatiseerd kunnen worden.
De eerste keer zelf instellen of aanpassen
Volg onderstaande stappen bij het eerste gebruik van het script.
1. Maak een Spotify app aan via
https://developer.spotify.com.
2. Zoek en vervang in het script
clientIDhere door de clientID van jouw app
3. Zoek en vervang in het script
clientsecrethere door de clientsecret van jouw app
4. Maak een openbare afspeellijst aan in Spotify en vraag het ID van de afspeellijst op.
5. Zoek en vervang in het script
playlistidhere door het ID van jouw afspeellijst.
6. Vervang de locatie op regel 252 (Remove oauth file to get a new one) door de locatie van jouw R project.
7.
Optioneel: wil je in een csv bestand bijhouden welke nummers je hebt opgehaald? vervang dan op regel 75 de locatie.
Opmerkingen
Een oplettende Tweaker (bedankt Tjolk) liet de volgende comment achter:
Goed punt. Ik heb nu gewoon een week lang elke avond het script laten lopen om een vullende afspeellijst in Spotify te kunnen krijgen. Ik had nog op de planning staan om het script bijv. elke avond automatisch te laten lopen. Ik ben hier alleen niet meer aan toegekomen.
Je zult denk ik inderdaad altijd te maken hebben met een achterstand door alle reclame, gewauwel etc. Stel dat je werkdag begint om 08:00 dan zou het script wellicht ook zo ingesteld kunnen worden dat eerst de muziek van de nacht wordt opgehaald en gedurende je werkdag om de x minuten controleert op nieuw gedraaide nummers die vervolgens aan je afspeellijst worden toegevoegd.
Conclusie
Het script is bij lange na niet perfect. Voor mij was dit voldoende. Ik hoop dat jullie er toch wat aan hebben en wellicht zelfs nog kunnen verbeteren

.
En nu zelf aan de slag
Het script is te vinden op GitHub via
https://github.com/blauwwater/radio-to-spotify.git