A FastAPI web application for exploring and analysing the data export that Spotify provides to its users. Upload your Spotify data dump and browse your playlists, tracks, and listening analytics through a web interface.
- Playlist browser — view all playlists with track listings
- Track browser — explore your saved library
- Analytics dashboard — most common tracks by playlist appearances and by play count
- Python 3.13+
- uv for dependency management
Install dependencies:
uv syncRun the development server:
python main.pyThe app will be available at http://localhost:8000.
uv run pytestThe project includes a GitHub Actions CD pipeline (.github/workflows/cd.yml) that:
- Sets up Python 3.13
- Creates a
venvand installs dependencies fromrequirements.txt - Connects to the server over WireGuard VPN
- Deploys
main.py,src/,static/, andvenv/via rsync
requirements.txt is auto-generated by the uv-export pre-commit hook whenever pyproject.toml or uv.lock change.
main.py # Application entry point
src/
loaders.py # Spotify data file parsing
models.py # Data models
analytics.py # Analytics computations
api/ # FastAPI route handlers
playlists.py
tracks.py
analytics.py
templates/ # Jinja2 HTML templates
base.html
index.html
playlists.html
tracks.html
analytics.html
static/ # CSS and JS assets
tests/ # Automated test suite
docs/ # Planning and development notes