Display your Spotify listening status on GH README and websites with a beautiful, customizable widget.
- Python 3.11+
uvpackage manager- Spotify Developer Account
- Supabase Account
-
Clone the repository
git clone https://github.com/janaSunrise/spotify-playing-readme cd spotify-playing-readme -
Install dependencies
uv sync --all-groups
-
Configure Spotify API
- Go to Spotify Developer Dashboard
- Create a new app
- Add
http://localhost:8000/callbackto Redirect URIs - Note your Client ID and Client Secret
-
Configure Supabase
- Create a new project on Supabase
- Setup the database with the schema from
schema.sql - Get your project URL and API key
-
Configure environment variables
Create a
.envfile based on.env.exampleand fill in the required values. Don't include a trailing slash inBASE_URL. -
Generate a secure secret key
You need a secure secret key for session management. Generate one using Python:
python -c "import secrets; print(secrets.token_hex(32))"Or using OpenSSL:
openssl rand -hex 32
Copy the generated key and use it as your
SESSION_SECRET_KEYin the.envfile. -
Run the application
uv run poe dev
The app will be available at http://localhost:8000
Update the .env file for production:
- Set
BASE_URLto your domain - Generate a secure
SESSION_SECRET_KEY(see step 6 in Local Development) - Update Spotify redirect URI to
https://yourdomain.com/callback
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License - see the LICENSE file for details.
Inspired by Novatorem