Extract the "stems" (e.g. drums, vocals, bass) from any song on Spotify or Youtube into separate audio files
This is a Flask web app using the following resources:
- Demucs ML model: Demucs is an music source separation model that creates the stems
- yt-dlp: Extracts the audio from the YouTube videos before passing them into demucs.
- Spotify API & Youtube Data API for URL conversion
-
Install Python
-
Clone the repository: Open a terminal and clone the repository using the following command:
git clone https://github.com/otonomee/streamstem.git
-
Install dependencies: Navigate to the project directory and install the required dependencies by running the following command:
pip install -r requirements.txt
-
Run the web app: Start the web app by running the following command:
python application.py
Or Mac
sudo python3 application.py
-
Access the web app: Open your web browser and go to http://127.0.0.1:5000 to access the web app.
-
Enter the YouTube video URL: On the web app's homepage, enter the URL of the YouTube video you want to convert the audio from.
-
Select the number of stems you'd like:
- 2 stems: vocals and instrumental
- 4 stems: vocals, drums, bass, other
- 6 stems: vocals, drums, bass, guitar, piano, other
-
Select desired output format
-
Hit Submit and wait a few minutes. Download prompt will appear when finished :)