matt-taylor.tech
← Back to projects

Personal · In production

Reddit → Spotify playlist sync

Python FastAPI SQLite SQLAlchemy 2.0 APScheduler Jinja2 Docker Reddit API Spotify API

Self-hosted app that watches a Reddit feed and keeps a Spotify playlist in sync with it. Runs unattended on a personal Debian server. The output playlist is the one I actually listen to every day and is currently my number-one playlist on Spotify.

Architecture

  • Backend: Python + FastAPI
  • Database: SQLite via SQLAlchemy 2.0 for run history and configuration
  • Admin UI: Server-rendered Jinja2 templates with login, run-history pages, and a manual-trigger button
  • Auth: Single local admin login with passlib[bcrypt] and itsdangerous-signed sessions
  • Scheduler: APScheduler running an in-app daily job at 07:00 America/New_York
  • HTTP: httpx for Reddit and Spotify API calls
  • Config: pydantic-settings with .env file support
  • Deployment: Single-container Docker on a personal Debian server
  • Testing: pytest

Why this is here

Most "personal project" cards die in active development. This one earned its slot by getting used: the synced playlist is what plays in the shop, the truck, and the office. The integration patterns (OAuth flows, scheduled jobs, server-rendered admin consoles, single-container deploys) are the same patterns I reach for in day-job work, kept fresh by running my own production for an audience of one.