Back up your Spotify playlists to Git with version control. Track how your music tastes evolve over time.
Spogitify is a web service that automatically backs up your Spotify playlists to GitHub. Each backup creates a snapshot of your playlists, allowing you to:
- Track how playlists change over time
- See when songs were added or removed
- Keep a permanent record of your music collection
- Visit Spogitify or run locally.
- As Spogitify is currently hosted using Render's free tier, it may take up to a minute to load.
- Log in with your Spotify account
- NOTE: Spogitify is currently in beta, and users must be allowlisted. Contact me for access.
- Click "Start Backup" to create your first archive
- View your playlist history on GitHub
- Authenticates with Spotify OAuth
- Fetches all your playlists
- Exports each playlist to JSON:
playlists_metadata.json: Overview of all playlistsplaylists/*.json: Individual playlist data
- Commits changes to a GitHub repository
- All backups are stored in public GitHub repositories
- Only playlist data is stored (no personal Spotify data)
- Spotify login uses official OAuth - we never see your password
- GitHub repositories are created under Spogitify's account
This is an open source project. To run locally:
- Install dependencies:
pip install -r requirements.txt
-
Create a Spotify app:
- Go to the Spotify Developer Dashboard
- Click "Create app"
- Fill in the app details:
- App name: Choose any name (e.g. "Spogitify Local")
- Redirect URI:
http://localhost:5000/authorize - Web API: Selected
- Click "Save"
- Note your Client ID and Client Secret
- Add to environment variables:
export SPOTIFY_CLIENT_ID=your_client_id export SPOTIFY_CLIENT_SECRET=your_client_secret export SPOTIFY_REDIRECT_URI='http://localhost:5000/authorize' -
Create a GitHub token:
- Go to GitHub Settings > Developer Settings > Personal Access Tokens > Tokens (classic)
- Click "Generate new token (classic)"
- Fill in the token details:
- Note: Choose any name (e.g. "Spogitify Local")
- Expiration: Choose an appropriate duration
- Scopes: Select
repo(Full control of private repositories)
- Click "Generate token"
- Note your token - you won't be able to see it again
- Add to environment variables:
export GITHUB_TOKEN=your_github_token -
Set up MongoDB:
- Create a free account at MongoDB Atlas
- Create a new cluster
- Click "Connect" and select "Connect your application"
- Copy your connection string
- Add to environment variables:
export MONGODB_URI=your_connection_string -
Run the development server:
python app.py