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)