A high-performance, asynchronous music recommendation system that integrates Spotify and YouTube APIs to deliver personalized track suggestions using semantic similarity. Built with FastAPI, Celery, Redis, and Docker, this API is designed to work seamlessly with a custom React + Spring Boot frontend application as part of a full-stack music recommendation platform.
This project serves as the backend engine for a full-stack music recommender system. It takes in a Spotify track and returns similar songs by leveraging audio embeddings, cosine similarity, and external API lookups. The system is built for scalability, fast response time, and integration with modern client-side applications.
β
Recommendation-API
βββ src/
β βββ utils.py # Interacting with Spotify API and saving data to database
β βββ recommend.py # Embedding, similarity, and helper logic
β βββ celery_config.py # Celery environment setup
β βββ main.py # FastAPI entrypoint
β βββ celery_tasks.py # Celery tasks for async computation
βββ .dockerignore # Ignore files
βββ .gitignore #
βββ compose.yml # Configuration specs for Docker
βββ Dockerfile # Setup for Docker
βββ README.md # What you're looking at right now!
βββ requirements.txt # All required libraries/packages
POST
request to the /save-data
endpoint./recommend
to retrieve the final list of tracks + YouTube links.
/status/{task_id}
to check when processing is complete and notifies user when their recommendations are ready to be fully personalized.Mason Scott
Third year CS major (Data Science track), Statistics minor
University of Maryland β College Park
π Website: masonscott.net
π GitHub: 04mscott
π LinkedIn: Mason Scott
This API was built specifically to serve a React + Spring Boot app for a full-stack music recommendation system. It is designed to run in Docker containers with background task support and optimized external API interaction. While setup and deployment details are not included in this README, the system is fully containerized and production-ready.