StreamGenius is an advanced music player that combines traditional player features with modern AI technology. The application is fully open-source and self-hosted, meaning you can run it on your own server and customize it to suit your needs.
- Music Playback: Play songs from your collection with options for looping, shuffling, and traditional queue management.
- AI Shuffle: The AI-powered shuffle intelligently sorts your play queue so that similar songs play next to each other, making for a smooth listening experience.
- Playlist Management: Create, edit, and manage playlists easily. Add songs to playlists directly from the music list or the player interface.
- Artist and Album Management: View detailed artist profiles and album collections. Upload custom images for artists, albums, and playlists.
- Customizable UI: Enjoy a sleek, dark-themed interface reminiscent of popular music streaming services like Spotify and Apple Music.
- Responsive Design: The application is designed to work seamlessly across different devices, from desktops to mobile.
To set up the StreamGenius on your own server, follow these steps:
- Node.js and npm installed on your server.
- MongoDB for the backend database.
- ffmpeg for audio processing.
-
Clone the Repository:
git clone https://github.com/ozeppo/StreamGenius.git cd ai-music-player
-
Install Dependencies:
Navigate to both the backend and frontend directories and install the required dependencies:
cd backend npm install cd ../frontend npm install
-
Set up configuration file:
Create a
config.js
file in the backend directory with the following content:module.exports = { mongoURI: 'YOUR_MONGODB_CONNECTION_URI', port: 5000, GENIUS_ACCESS_TOKEN: "YOUR_GENIUS.COM_API_TOKEN" };
-
Start the Application:
First, start the backend server:
cd ./backend npm run start
Then, start the frontend development server:
cd ./frontend npm run serve
-
Access the Application:
Open your web browser and navigate to
http://localhost:8080
to access the StreamGenius.
- Backend: Handles API routes, music analysis, and database management.
- Frontend: The Vue.js application that provides the user interface.
You can customize the application by editing the Vue.js components in the frontend/src
directory or by modifying the Express.js routes in the backend/src
directory.
We welcome contributions! If you find a bug or have a feature request, please open an issue or submit a pull request.
This project is licensed under the MIT License.