Setlist Maker is an app that creates Youtube Music and Spotify playlists based on the most recent concerts of an artist. It fetches setlists from Setlist.fm and automatically creates playlists.
python -m venv myvenv
source myvenv/bin/activate # On macOS/Linux
myvenv\Scripts\activate # On Windowspip install -r requirements.txtEnsure you have the necessary credentials:
-
Setlist.fm API Key: Register at Setlist.fm and get your API key.
-
Spotify API Credentials:
- Create an application in the Spotify Developer Dashboard.
- Obtain the Client ID, Client Secret, and Redirect URI.
-
YouTube Music Browser Authentication:
-
Run the browser authentication command:
ytmusicapi browser --file browser.json
-
Open music.youtube.com in your browser (make sure you're logged in)
-
Open DevTools (F12 or Cmd+Option+I on Mac) → Network tab
-
Refresh the page and click on any request to
music.youtube.com -
Copy the Request Headers and paste them when prompted (on macOS, you can copy to clipboard and run
pbpaste | ytmusicapi browser --file browser.json)
Set up the env variables:
export SETLIST_API_KEY="your-setlist-api-key" export SPOTIFY_CLIENT_ID="your-spotify-client-id" export SPOTIFY_CLIENT_SECRET="your-spotify-client-secret" export SPOTIFY_REDIRECT_URI="your-redirect-uri" export YT_BROWSER_AUTH_PATH="/path/to/browser.json"
-
fastapi dev main.pyThis starts the FastAPI server.
Once the server is running, you can access interactive API documentation at: http://127.0.0.1:8000/docs
This project uses the following libraries:
- Spotipy: Python library for interacting with the Spotify Web API.
- ytmusicapi: Unofficial Python API for YouTube Music.
For more information on setup and usage, refer to their documentation.
- Create account and API key in Setlist FM
- Create virtual environment
- Create FastAPI project/endpoint to connect to Setlist.fm and search for setlists by band and year
- Connect to Spotify with credentials
- Create playlist in Spotify based on a setlist
- Create playlist in Spotify based on the last 3 or 5 setlists, including rare songs
- Create playlist in YouTube Music based on setlist
- Make a simple UI in Streamlit
- Make sure UI adheres to Spotify's terms of service
- Disable youtube music playlist creation for Production, leave only on dev
- Map tours and concerts by band
- Create a setlist for a specific concert
- Create a setlist from a date range or tour of a band