A modern music app that allows users to listen to songs for free, featuring AI-driven recommendations, playlist creation, and social interaction capabilities.
- User Authentication: Sign up and log in securely using Google accounts, phone numbers, or email (using Spotify for authentication)
- Music Streaming: Listen to a wide array of songs using a combination of Spotify data and YouTube Music playback via a Python backend.
- AI-Driven Recommendations: Personalized music suggestions based on user preferences and listening history
- Playlist Management: Create, edit, and save playlists
- Search Functionality: Search for specific songs, albums, or artists using both Spotify and YouTube Music.
- Social Features:
- Follow/Unfollow friends and family
- Direct messaging with text, images, and songs
- Collaborative playlists
- Group chats for sharing music
- Frontend: React with modern UI libraries
- Backend: Python with FastAPI (for YouTube Music integration)
- Spotify Integration: Frontend uses Spotify API for authentication and data.
- YouTube Music Integration: Python backend uses ytmusicapi for searching and playback links.
- Node.js/Express/MongoDB/Socket.io: (Mention if these are still planned or used for other features like social/auth beyond Spotify)
- Node.js (v14+)
- npm or yarn
- Python 3.7+
- pip
- Spotify Developer Account (for API credentials)
- Spotify API: Go to the Spotify Developer Dashboard. Create an application and note down your Client ID and Client Secret. You will need to configure a Redirect URI for your application (e.g.,
http://localhost:3000/callback). - Backend Configuration: Create a
.envfile in thebackend/pythondirectory and add your Spotify credentials:SPOTIFY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID SPOTIFY_CLIENT_SECRET=YOUR_SPOTIFY_CLIENT_SECRET SPOTIFY_REDIRECT_URI=YOUR_SPOTIFY_REDIRECT_URI
- YouTube Music API: The
ytmusicapilibrary may require initial authentication setup. Follow the instructions for ytmusicapi authentication to create anoauth.jsonfile in thebackend/pythondirectory.
Important: Add oauth.json and .env to your .gitignore file to prevent committing sensitive information.
- Clone this repository
- Install frontend dependencies:
cd frontend npm install - Install Python backend dependencies:
(Create a
cd backend/python pip install -r requirements.txtrequirements.txtif it doesn't exist withfastapi,uvicorn,ytmusicapi,python-dotenv)
- Start the Python backend server:
cd backend/python uvicorn ytmusic_server:app --reload - Start the frontend development server:
cd frontend npm start
/backend/node- Node.js/Express server (if applicable)/backend/python- Python/FastAPI server for YouTube Music integration/frontend- React frontend application/docs- Documentation files
MIT