Skip to content
This repository has been archived by the owner on Aug 23, 2023. It is now read-only.
/ spotify-web-app Public archive

A web app implementing a variety of tools and visualization features for Spotify :)

Notifications You must be signed in to change notification settings

jittner/spotify-web-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Toolify

Useful tools for Spotify ✌️


Neat features:

  • View your top artists and songs over different ranges of time
  • See info about your top artists
  • Visualize the average audio attributes of your playlists
  • Get song recommendations based on your playlists (explained further below)
    • Add those recommendations to a new playlist directly from the page

Future features (backend already implemented):

  • Check your playlists for duplicate songs
  • Copy songs from one playlist to another
  • Get recommendations based on your top artists and tracks

(You'll need third party cookies enabled, and the first visit might take a bit to load if the Heroku app is idle)



Built with:

  • Spotify API
    • Spotipy
  • React
    • React Router
    • React Bootstrap
    • Styled Components
    • Recharts
  • Flask
    • Flask Dance
  • Heroku

Playlist recommendations, via k-means clustering

For me, the most fun aspect of this project is the method of recommending songs based on an input playlist. The Spotify API currently only accepts up to 5 seed tracks when generating recommendations, so we need to somehow select 5 songs from a playlist which best represent it if we want to get the most relevant recommendations. Luckily, the Spotify API also provides a ton of useful data, like the audio features of a particular song. By gathering the audio features of each song in the playlist, we can cluster the songs into 5 different groups (this number is both convenient for the API and also supported by the elbow method). Each group will have its own shared set of common audio features which link the songs together. For example, one group of songs in a playlist might have high danceability and energy values, while another group might have high acousticness and instrumentalness values. Then, by taking one song from each cluster, we've found our 5 tracks to provide the Spotify API. You can visualize the process by looking at the graph of audio features on the playlist page, and then the graph of audio features of the selected seed songs on the corresponding recommendations page. Ideally, the 5 seed songs should have audio characteristics which resemble those of the whole playlist, and the graphs should look about the same.

About

A web app implementing a variety of tools and visualization features for Spotify :)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published