🎧 Update a pinned gist to show your top Spotify tracks/artists
📌✨ For more pinned-gist projects like this one, check out: https://github.com/matchai/awesome-pinned-gists
- Create a new public GitHub Gist. (https://gist.github.com/)
- Create an access token with the
gistscope and copy it. (https://github.com/settings/tokens/new)
-
Go to the Spotify Developer Dashboard and log in. (https://developer.spotify.com/dashboard/)
-
Create an app with a name and description.
-
Copy the
Client IDandClient secret. -
Click on edit settings and add
http://localhost:5000/as a redirect URI. -
In your browser enter this URL and replace <client_id> in this url:
https://accounts.spotify.com/authorize?client_id=<client_id> &response_type=code&redirect_uri=http://localhost:5000/ &scope=user-top-read%20user-read-recently-played -
After this you should see an url like this in your address bar:
http://localhost:5000/?code=<code>. Copy this code query parameter. -
Use this website to generate a base 64 string of the form
client_id:client_secret. (https://www.base64encode.org/) -
In a terminal, run the following command and use the base 64 encoded string and code from the previous steps.
curl -H "Authorization: Basic <base 64 str>" -d grant_type=authorization_code -d code=<code> -d redirect_uri=http://localhost:5000/ https://accounts.spotify.com/api/token
-
A JSON response containing a
refresh_tokenwill be returned. Copy this value.
- Fork this repo
- Go to the repo Settings > Secrets
- Add the following environment variables:
- GH_TOKEN: The GitHub access token generated above.
- GIST_ID: The ID portion from your gist url:
https://gist.github.com/Aveek-Saha/8335e85451541072dd25fda601129f7d. - CLIENT_ID: Your Spotify
client_id. - CLIENT_SECRET: Your Spotify
client_secret. - REFRESH_TOKEN: The
refresh_tokengenerated. - TYPE: The type of data generated on the gist. Can be one of
top_tracks,top_artistsorrecently_played. - TIME_RANGE: The time frame for computing
top_tracksortop_artists. Can be one oflong_term,medium_termorshort_term.
This code was inspired by @matchai's bird-box.
