Solo Project
2025 - 2026
7 technologies
About This Project
MoodTunes transforms freeform thoughts or voice input into personalized Spotify playlists. Rather than a basic 6-emotion model, it runs SamLowe/roberta-base-go_emotions to classify 28 nuanced emotions (nostalgia, admiration, optimism, grief, etc.). A HuggingFace-hosted LLM (Qwen 2.5 with Mistral 7B fallback) reads the emotion vector to craft creative search queries and evocative descriptions. The pipeline operates through a serverless POST /api/generate route featuring sliding-window rate limiting (20 req/min), in-memory Spotify token caching, and parallel Promise.all deduplicated track searches. A 3-stage fallback chain guarantees zero empty results. Frontend features dynamic ambient gradient orbs, a radial emotion weight chart, and Web Speech API voice input.
Tech Stack
Key Features
- 28-emotion classification via SamLowe/roberta-base-go_emotions (vs typical 6-emotion sentiment)
- LLM-curated Spotify search queries and playlist descriptions (Qwen 2.5 / Mistral 7B via HuggingFace)
- Single /api/generate endpoint with rate limiting, Spotify token caching, and parallel search
- Three-stage fallback chain (LLM, keyword mapping, keyword detection) so results never come back empty
- Radial emotion chart, mood-reactive ambient background, and Web Speech API voice input
The Outcome
Live at moodtunes.adibdev.me (GitHub). Demonstrates resilient AI orchestration: combining RoBERTa classification, LLM query generation, and the Spotify API into a unified pipeline with 100% fallback reliability.