Your AI-Powered Music Companion
Vibify is a smart music streaming app that enhances your Spotify experience with AI-powered contextual recommendations and real-time chat control. Built with Electron + React frontend and Python FastAPI backend.
- 🎯 Smart AutoMix Playlists: Context-aware music recommendations based on your activity and mood
- 💬 Live DJ Chat: Use natural language to influence music selection in real-time
- 🔗 Spotify Connect Integration: Control playback on any of your Spotify devices
- 📱 Unified Interface: Access your existing playlists and library in a beautiful, intuitive design
- 🎮 Real-time Controls: Play, pause, skip, shuffle, and seek with live progress tracking
- 🔄 Device Management: Seamlessly switch between your phones, computers, and speakers
├── frontend/ # Electron + React app
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── app.tsx # Main React app
│ │ ├── renderer.tsx # Electron renderer entry point
│ │ └── index.html # HTML template
│ └── package.json
├── backend/ # Python FastAPI server
│ ├── main.py # FastAPI application
│ └── requirements.txt
└── README.md
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm start
-
Navigate to the backend directory:
cd backend -
Create a virtual environment (optional but recommended):
python -m venv venv venv\Scripts\activate # On Windows # or source venv/bin/activate # On macOS/Linux
-
Install dependencies:
pip install -r requirements.txt
-
Start the development server:
uvicorn main:app --reload
The FastAPI server will be available at http://localhost:8000
Authentication:
GET /auth/spotify/login- Generate Spotify OAuth URLGET /callback- Handle OAuth callback and token exchange
Playback Control:
GET /player/devices- Get available Spotify devicesGET /player/currently-playing- Get current playback statePOST /player/play- Start/resume playback or play specific contentPOST /player/pause- Pause playbackPOST /player/next- Skip to next trackPOST /player/previous- Skip to previous trackPOST /player/seek- Seek to position in trackPOST /player/volume- Set volume levelPOST /player/shuffle- Toggle shuffle modePOST /player/repeat- Set repeat mode
Music Library:
GET /user/playlists- Get user's Spotify playlistsGET /playlist/{id}/tracks- Get tracks from specific playlistGET /search- Search Spotify catalog
Vibify is now fully functional with core features implemented!
✅ Completed Features:
- Spotify OAuth authentication with popup flow
- Real-time playback controls via Spotify Connect API
- Live progress tracking and seeking
- Device selection and management
- Playlist browsing and click-to-play functionality
- Beautiful dark-themed UI matching Spotify's design
🔄 In Development:
- AI-powered AutoMix playlist generation
- Natural language chat interface for music control
- Context detection and smart recommendations
- Advanced ML-based music curation
- Frontend: Electron, React, TypeScript, Webpack
- Backend: Python, FastAPI, WebSockets
- Future integrations: Spotify Web API, ML libraries (scikit-learn, transformers), Vector databases (FAISS)