Skip to content

ShawnLi14/Vibify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Vibify ๐ŸŽต

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.

โœจ Features

  • ๐ŸŽฏ 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

Project Structure

โ”œโ”€โ”€ 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

Setup

Frontend (Electron + React)

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm start

Backend (Python FastAPI)

  1. Navigate to the backend directory:

    cd backend
  2. Create a virtual environment (optional but recommended):

    python -m venv venv
    venv\Scripts\activate  # On Windows
    # or
    source venv/bin/activate  # On macOS/Linux
  3. Install dependencies:

    pip install -r requirements.txt
  4. Start the development server:

    uvicorn main:app --reload

The FastAPI server will be available at http://localhost:8000

๐Ÿ”Œ API Endpoints

Authentication:

  • GET /auth/spotify/login - Generate Spotify OAuth URL
  • GET /callback - Handle OAuth callback and token exchange

Playback Control:

  • GET /player/devices - Get available Spotify devices
  • GET /player/currently-playing - Get current playback state
  • POST /player/play - Start/resume playback or play specific content
  • POST /player/pause - Pause playback
  • POST /player/next - Skip to next track
  • POST /player/previous - Skip to previous track
  • POST /player/seek - Seek to position in track
  • POST /player/volume - Set volume level
  • POST /player/shuffle - Toggle shuffle mode
  • POST /player/repeat - Set repeat mode

Music Library:

  • GET /user/playlists - Get user's Spotify playlists
  • GET /playlist/{id}/tracks - Get tracks from specific playlist
  • GET /search - Search Spotify catalog

๐Ÿš€ Current Status

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

Tech Stack

  • Frontend: Electron, React, TypeScript, Webpack
  • Backend: Python, FastAPI, WebSockets
  • Future integrations: Spotify Web API, ML libraries (scikit-learn, transformers), Vector databases (FAISS)

About

The smarter contextual music player

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published