SonicStyle is an interactive web application that bridges the gap between music and fashion. By analyzing the "vibe" of your favorite songs, artists, or albums, using the Apple Music API, it recommends a curated selection of fashion items from Amazon that match that specific aesthetic.
Repository: https://github.com/vikbht/musicreco Architecture: View Documentation
| Home Page | Search Results |
|---|---|
![]() |
![]() |
- Music Search: Find any song, artist, or album.
- Vibe Engine: Automatically detects the aesthetic (e.g., Grunge, Disco, Synth-Pop) based on genre and mood.
- Fashion Recommendations: Get "Shop the Look" suggestions matching the detected vibe.
- Mock Mode: Fully functional demo mode working immediately without API keys.
This project uses uv for lightning-fast dependency management.
- Python 3.12+
- uv (Package Manager)
-
Clone & Run:
# No manual install needed! uv handles virtualenv and deps. uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 -
Open the App: Visit http://localhost:8000
By default, the app runs in Mock Mode, returning simulated data for "Nirvana", "The Weeknd", etc. To enable real data, you need to configure API keys.
-
Create configuration file:
cp .env.example .env
-
Add your Keys in
.env:-
Apple Music API: Required to fetch real song metadata and genres.
APPLE_MUSIC_TOKEN: Your Developer Token (JWT).
-
Amazon Product API: Required to search for real products on Amazon.
AMAZON_ACCESS_KEY: AWS Access Key ID.AMAZON_SECRET_KEY: AWS Secret Key.AMAZON_PARTNER_TAG: Your Associate Tag.
Note: The app checks for these keys on startup. If missing, it gracefully degrades to Mock Mode.
-
- Backend: FastAPI (Python)
- Frontend: HTML5, CSS3 (Glassmorphism), Jinja2 Templates
- Package Manager: uv

