Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wightwick/fynesse
Pure-Python web app for music exploration with Spotify 🌱
https://github.com/wightwick/fynesse
Last synced: 14 days ago
JSON representation
Pure-Python web app for music exploration with Spotify 🌱
- Host: GitHub
- URL: https://github.com/wightwick/fynesse
- Owner: wightwick
- Created: 2023-10-20T23:54:33.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-10T16:33:26.000Z (7 months ago)
- Last Synced: 2024-08-01T16:51:41.517Z (3 months ago)
- Language: Python
- Homepage:
- Size: 7.64 MB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# :control_knobs: fynesse
:seedling: Advanced recommendation and search web app for Spotify, written in pure Python.
:package: UI written in [Reflex](https://github.com/reflex-dev/reflex/), Spotify interaction via [Spotipy](https://github.com/spotipy-dev/spotipy)
![Screenshot](screenshot.png?raw=true 'fynesse UI')
## Features
- **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## Connecting to Spotify API and running the app
The core functionality of fynesse requires a connection to **Spotify's Web API**.
To set this up:
1. Go to the [Spotify developer dashboard](https://developer.spotify.com/dashboard/applications)
1. Click `Create app`
1. Enter a name and app description (these don't matter)
1. Enter `http://localhost:3000` as Redirect URI (note - needs to be the same port the reflex app is configured to run on)
1. Tick `Web API` under `Which API/SDKs are you planning to use?`
1. Agree to terms and click `Save`
1. Click `Settings` in the top right
- You now can see your `Client ID` and `Client Secret`
1. Add your `Client ID` and `Client Secret` to [sp_secrets.py](sp_secrets.py)
1. You are now ready to run the app. Do so by running `reflex init` followed by `reflex run` in the [parent directory](/) (you will need the packages listed in [requirements.txt](requirements.txt) installed)
1. On first run, you will be prompted to log in to your spotify account. Do so!
1. The app should run, accessible at `http://localhost:3000` :sunglasses:## Tips for use
- 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