stemkit README

The project's README from github.com/danielravina/stemkit. As one markdown file: README.md.

StemKit

Split any YouTube song into isolated stems — vocals, drums, bass, guitar, piano and more — right on your machine.

Search YouTube or paste a link, pick the instruments you want, and play the result like a mini DAW: the video on one side, every stem on its own fader, all perfectly in sync. Karaoke, acapellas and instrumentals are one click away.

Everything runs locally — no accounts, no cloud, no API keys.

platform local

StemKit splitting Queen's Bohemian Rhapsody into six stems — video player, presets and color-coded waveform lanes

Features

Download

Grab installers from Releases:

First launch creates a private Python environment and downloads the separation engine (~2 GB) — one time. ffmpeg is bundled — nothing else to install.

Optional quality upgrades live behind a gear icon in the app (Settings), each with its own one-time download:

macOS first launch: builds are signed with a Developer ID but not notarized, so macOS may say it "cannot verify the developer". One-time fix: System Settings → Privacy & Security → Open Anyway (or xattr -cr /Applications/StemKit.app).

Windows: SmartScreen may warn on first run — "More info → Run anyway".

Requirements

Develop

npm install
npm run dev

Wrong Node version? Scripts auto-relaunch with a suitable one (nvm / nvm-windows).

Build & release

bash scripts/fetch-ffmpeg.sh        # mac/linux (one time)
powershell scripts/fetch-ffmpeg.ps1 # windows (one time)

npm run dist        # mac dmg -> release/
npm run dist:win    # windows nsis+zip -> release/
npm run dist:linux  # linux AppImage+deb (x64) -> release/
npm run dist:all    # both (on the matching OS)

Linux: building the .deb needs dpkg + fakeroot on the host; running the .AppImage needs FUSE. In-app self-update works on the AppImage — .deb installs update by re-downloading.

Releases are built by GitHub Actions:

macOS builds are Developer-ID-signed when the certificate is available — see Signing in CI below for the one-time setup, plus optional notarization.

Signing in CI (one-time setup)

Local builds sign with your keychain cert automatically. CI runners have empty keychains, so hand them the certificate via repo secrets:

  1. Keychain Access → My Certificates → right-click Developer ID Application: ... → Export → .p12 (set an export password)
  2. Base64 it and add these repo secrets:
    • CSC_MAC_P12 — the base64 string: base64 -i developer-id.p12 | pbcopy
    • CSC_MAC_PASSWORD — the export password from step 1
  3. Optional (full notarization, zero Gatekeeper prompts): add APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD, APPLE_TEAM_ID and set repo variable ENABLE_NOTARIZATION to true (Settings → Secrets and variables → Actions → Variables). Requires an active Apple Developer membership — Apple's notary service rejects expired accounts.

Without these secrets CI falls back to ad-hoc signing (app runs, but Gatekeeper complains on download).

How it works

YouTube URL ──► yt-dlp (+JS runtime) ──► bundled ffmpeg ──► mel-band roformer (vocals) ─┐
                                        │                                               ├─► stems/*.wav
                                        └─────────────► demucs htdemucs ────────────────┘
                                             (drums/bass/other, shift-averaged)

Electron renderer ◄──── IPC events ─────┘
video iframe (muted) + Web Audio stem playback · master clock = the audio itself

Notes

Layout

src/main         Electron main process (pipeline, env bootstrap, library)
src/preload      IPC bridge
src/renderer     React UI (player, sync engine, waveforms)
python/          separate.py (demucs) and roformer.py (neural vocals) with JSON progress output
python/vendor/   patched model code — see python/vendor/README.md
scripts/         node runner, ffmpeg fetchers
build/           icon sources

stemkit (danielravina/stemkit)

Searching Database…

1.1K ·GitHub
Что это?StemKit разделяет любую песню с YouTube на отдельные дорожки (stems) — вокал, ударные, бас, гитару, фортепиано и другие — целиком на вашей собственной машине, с мини-плеером в стиле DAW для сведения/мьюта/соло каждой дорожки.
Это веб-приложение или то, что я ставлю на компьютер?Это нативное десктоп-приложение на Electron и TypeScript, распространяемое установщиками (DMG, EXE, AppImage/deb), а не веб-сервис.
Как его запустить?Скачайте подходящий установщик со страницы GitHub Releases — DMG для Mac на Apple Silicon, EXE-установщик или портативный zip для Windows, либо AppImage/deb для Linux — и запустите.
Нужно ли самому сначала ставить Python или ffmpeg?Нет — при первом запуске StemKit при необходимости сам скачивает собственный рантайм Python (разовая загрузка около 2 ГБ для движка разделения), а ffmpeg идёт в комплекте с приложением.
Есть ли подводные камни при установке, о которых стоит знать?В macOS приложение подписано, но не нотаризовано, поэтому Gatekeeper скажет «не удаётся проверить разработчика», пока вы не разрешите вручную; в Windows SmartScreen может предупредить при первом запуске — нужно «Run anyway».
Работает ли на Mac с Intel или только на Apple Silicon?На macOS (12+) поддерживаются только Mac на Apple Silicon; Windows 10/11 x64 и Linux x64 тоже поддерживаются.
Нужно ли интернет-соединение после настройки?Когда разовая настройка (рантайм + движок разделения) завершится, StemKit работает полностью офлайн — интернет нужен только чтобы изначально найти и скачать само аудио с YouTube.
Отправляется ли моё аудио или ссылка на YouTube куда-либо?Нет — всё, включая само разделение, выполняется локально на вашей машине, без аккаунтов, облачных сервисов и API-ключей.
А законно ли вообще скачивать аудио с YouTube этим инструментом?Сам проект под лицензией MIT, но README прямо говорит, что вытягивание аудио с YouTube нарушает его Условия использования для публичных продуктов, поэтому он предназначен только для личного использования.
Нужна ли GPU NVIDIA или работает и на CPU?GPU ускоряет работу (Apple Silicon через MPS, NVIDIA через CUDA), но разделение идёт и на обычном CPU, если GPU нет.
Какие инструменты умеет разделять StemKit?Вокал, ударные, бас, гитару, фортепиано и другие — вы выбираете инструменты, а StemKit автоматически подбирает для них подходящий движок разделения.
Что за пресеты в один клик?Пресеты All, Karaoke, Acapella и Drums + Bass мгновенно дают нужную комбинацию дорожек без ручного выбора.
Можно ли экспортировать разделённые дорожки?Да, любую отдельную дорожку или все сразу можно экспортировать в WAV-файлы.
Есть ли варианты разделения покачественнее?Да, опциональные разовые загрузки в шестерёнке Settings добавляют вокал студийного качества Mel-Band Roformer (+913 МБ), дообученную модель Demucs (+~320 МБ, до 4 раз медленнее) и дополнительные проходы доводки (до 3 раз медленнее).
Size
12.6 MB
Stars
1.1K
Age
1mo
Commits · 90 Days