🌱 Advanced recommendation and search web app for Spotify, written in pure Python.
📦 UI written in Reflex, Spotify interaction via Spotipy
- Generate recommendations based on seed tracks and artists from your library or search results + 5 tuneable parameters provided by rhe recommendation API
- Browse your Spotify library (liked songs, playlists, recently played) and see artist genres associated with each track
- Fine-grained search for artists and tracks — by name, genre, year
- Play and queue new music on your currently active Spotify device, or save recommendations to a playlist to lisen later
The core functionality of fynesse requires a connection to Spotify's Web API.
To set this up:
- Go to the Spotify developer dashboard
- Click
Create app - Enter a name and app description (these don't matter)
- Enter
http://localhost:3000as Redirect URI (note - needs to be the same port the reflex app is configured to run on) - Tick
Web APIunderWhich API/SDKs are you planning to use? - Agree to terms and click
Save - Click
Settingsin the top right- You now can see your
Client IDandClient Secret
- You now can see your
- Add your
Client IDandClient Secretto sp_secrets.py - You are now ready to run the app. Do so by running
reflex initfollowed byreflex runin the parent directory (you will need the packages listed in requirements.txt installed) - On first run, you will be prompted to log in to your spotify account. Do so!
- The app should run, accessible at
http://localhost:3000😎
- have a flick through your library for some bangers
- plant them and/or their artists into the seeds window
- germinate the seeds to produce a batch of tune recommendations
- experiment with the other generation parameters to fine tune your recommendations
- play/queue some/all of the recommended tunes
- music is played via your active spotify device if you have one
- to play music from fynesse, you need to have a spotify client open somewhere - desktop, web, or mobile, and Spotify must consider it the 'active device'. To make a device active you can quickly play/pause from it
- save recommended tunes to a playlist in your library to listen another time
- explore genres by showing them on your library and clicking to search
- narrow down search to find similar tunes manually
- using a set of disparate seeds will produce a mixed playlist
- tunes can be played, queued or seeded from search results via each track's dropdown button
