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 API Credentials:
- Go to the Google Cloud Console.
- Create a new project or use an existing one.
- Create OAuth 2.0 credentials:
- Go to APIs & Services > Credentials.
- Click Create Credentials > OAuth Client ID.
- Select TVs and Limited Input devices
-
Authenticate using
ytmusicapi:Run and follow the instructions
ytmusicapi oauth
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 GOOGLE_CLIENT_ID="your-google-client-id" export GOOGLE_CLIENT_SECRET="your-google-client-secret"
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