A web application that lets you download music and split it into separate instrument tracks using AI.
- Download music from various sources
- Split songs into stems (vocals, drums, bass, guitar, piano, other)
- Create custom mixes by combining stems
- User authentication with admin approval system
- Clone and install dependencies:
git clone https://github.com/yourusername/musicmagic.git
cd musicmagic
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Unix/MacOS
pip install uv
uv pip install -r requirements.txt- Create a
.envfile:
REPLICATE_API_TOKEN=your_token_here
PORT=5000 # Optional, defaults to 5000
FLASK_DEBUG=true # Optional, defaults to false
FLASK_SECRET_KEY=your_secret_key # Optional, auto-generated if not set
DATABASE_URL=sqlite:///music.db # Optional, defaults to SQLite
Get your token from Replicate
- Run the app:
flask run- Visit
http://localhost:5000and register - the first user to register becomes admin!
- The first user to register automatically becomes admin and can approve other users
- You need a Replicate API token for stem separation
- Maximum file size: 16MB
- Supported formats: MP3
- Stem separation takes several minutes per song
- Backend: Flask + SQLite
- Frontend: Bootstrap 5
- AI: Demucs (via Replicate)
- Audio: FFmpeg