Karan Gupta ← back

For Fun / Side Project

Spotify Pi Thing

Raspberry Pi, Python 3, FastAPI, Spotipy, HTML/CSS/JS

A standalone Raspberry Pi Spotify controller that acts like a small in-car console. Everything runs locally on the device, providing a touch-optimized UI in a fullscreen browser.

Architecture & Backend
The Raspberry Pi runs a Python backend using FastAPI and Spotipy to serve a REST API and handle Spotify OAuth endpoints. It saves token caches persistently to allow the device to reconnect autonomously after a reboot.

Frontend
The UI is a vanilla HTML/CSS/JS single-page application tailored for 3.5"-5" touchscreen displays. It polls the backend API for "now-playing" states every 3 seconds to update the UI on the fly without a build step.

Deployment
The project is set up with fully automated deployment scripts (systemd via shell script) that launch the backend immediately at system boot, and autostarts Chromium into a fullscreen kiosk mode as soon as the desktop environment is loaded.

← Back to projects