This is Yaas 1.0.0, a desktop application that splits the soundtrack of a YouTube video into separate stems (vocals, drums, bass, other, ...), for example to practice an instrument over the rest of the band.
Browse to a video in the built-in browser, click Start, and Yaas downloads its audio, separates it with a machine-learning model, and writes one WAV file per stem.
Full documentation: https://kleag.github.io/yaas/
Ready-to-run builds are on the GitHub Releases page:
| Platform | Download | ffmpeg |
|---|---|---|
| Windows | yaas_installer.exe |
Install it separately: winget install ffmpeg in PowerShell |
| macOS (Apple Silicon) | yaas_installer.dmg |
Included |
| Linux (x86_64) | yaas-x86_64.AppImage |
Install it with your package manager, e.g. sudo apt install ffmpeg |
The macOS app isn't signed: the first time, right-click it and choose Open to get past Gatekeeper's warning. On an Intel Mac, install from PyPI instead.
On any platform with Python 3.12 to 3.14, you can also install from PyPI into a virtual environment (see the uv documentation), with ffmpeg installed separately:
uv pip install yaasSee Installation for details, including GPU acceleration.
Start Yaas from your applications menu, or with yaas in a terminal when
installed from PyPI. Then:
- navigate to a YouTube video or playlist in the integrated browser,
- click Start and wait: separation can take a while, especially on CPU,
- click the stems listed in the status log, or find them in the output
folder,
$HOME/yaas_tracksby default.
While a job runs, keep browsing and click Add to Queue to split more videos afterwards. Click Stop to stop the running job.
The ☰ menu gives access to:
- Settings...: the output folder and the separation model,
- Open Output Folder,
- GPU Acceleration...: an optional CUDA environment on Windows/Linux, or the status of Metal acceleration on Apple Silicon Macs,
- the documentation, the issue tracker, and the version information.
Choose the model in Settings...; the choice is kept for future runs.
| Model | Library | Notes |
|---|---|---|
| BS-Roformer (default) | audio-separator | |
| HTDemucs 6 stems | audio-separator | Also separates guitar and piano |
| OpenUnmix | OpenUnmix |
Models are downloaded on first use and cached for later runs.
These override the settings for a single run:
| Option | Description |
|---|---|
--version |
Print the version and exit |
-o, --out DIR |
Output folder |
--backend {audio_separator,openunmix} |
Separation library |
--model {roformer,htdemucs6s} |
Model used with the audio_separator backend |
--sample-rate {44100,48000} |
Stems' sample rate |
Please respect the copyright of the videos' authors: if they don't allow sharing, keep the extracted stems for your personal use.
Yaas uses uv. From a clone of the repository:
uv venv && source .venv/bin/activate
uv pip install -e . --group dev
yaas
pytestReleases are versioned with bumpver:
git commit
bumpver update --patch # or --minor / --majorbumpver pushes a version tag, which makes GitHub Actions publish the
package to PyPI, and build the Windows, macOS, and Linux packages and attach
them to a GitHub Release. See
Building & Releasing for building
them locally.
Gaël de Chalendar, aka Kleag (c) Gaël de Chalendar, 2024-2026
This program is free software, licensed under the Mozilla Public License 2.0 (MPL 2.0) license (see the LICENSE file). It includes most of the youtube-to-mp3 project, itself under the MPL license.
