Loading repository data…
Loading repository data…
vicrodh / repository
A native, full-featured hi-fi Qobuz desktop player for Linux and MacOS, with fast, bit-perfect audio playback.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
QBZ is a free and open source high-fidelity streaming client for Linux and macOS with fully native playback. As of 2.0, the entire app is a single native Rust process built with a Slint UI — no browser engine, no webview — with DAC passthrough, per-track sample rate switching, exclusive mode, and bit-perfect audio delivery.
No API keys needed. No telemetry. No tracking. Just music.
Browsers cap audio output at 48 kHz and resample everything through WebAudio. QBZ uses a native playback pipeline with direct device control so your DAC receives the original resolution — up to 24-bit / 192 kHz — with no forced resampling.
yay -S qbz-bin # or paru -S qbz-bin
flatpak install flathub com.blitzfc.qbz
Audiophiles: Flatpak sandboxing limits PipeWire bit-perfect. Use ALSA Direct backend for guaranteed bit-perfect in Flatpak, or install via native packages for full PipeWire support.
sudo snap install qbz-player
sudo snap connect qbz-player:alsa
sudo snap connect qbz-player:pipewire
Note: After installing, connect ALSA and PipeWire interfaces for full audio support. MPRIS media keys work out of the box.
curl -fsSL https://vicrodh.github.io/qbz-apt/qbz-archive-keyring.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/qbz-archive-keyring.gpg > /dev/null
cat <<EOF | sudo tee /etc/apt/sources.list.d/qbz.sources
Types: deb
URIs: https://vicrodh.github.io/qbz-apt
Suites: stable
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /usr/share/keyrings/qbz-archive-keyring.gpg
EOF
sudo apt update && sudo apt install qbz
Requires glibc 2.39+ (Ubuntu 24.04+, Debian 13+). For older releases use Flatpak, Snap, or AppImage.
Download from Releases: sudo dnf install ./qbz-*.rpm
Requires glibc 2.39+ (Fedora 40+, openSUSE Tumbleweed).
eselect repository add qbz-overlay git https://github.com/vicrodh/qbz-overlay.git
emerge --sync qbz-overlay
emerge media-sound/qbz-bin # prebuilt binary (recommended)
# or
emerge media-sound/qbz # build from source
Source-build warning (yes, even by Gentoo standards): QBZ's UI compiles into one giant generated Rust module — the release build peaks at 20–30 GB of RAM and takes a long while (see The memory wall). Every version bump recompiles it.
qbz-binspares you all of that; the source ebuild is there for those who enjoy the smell of rustc in the morning.
Add the flake input to your flake.nix:
inputs.qbz.url = "github:vicrodh/qbz";
NixOS (system-wide):
{pkgs, inputs, ...}:
{
environment.systemPackages = [
inputs.qbz.packages.${pkgs.system}.default
];
}
Home Manager:
{pkgs, inputs, ...}:
{
home.packages = [
inputs.qbz.packages.${pkgs.system}.default
];
}
QBZ is also available in nixpkgs as
qbz.
Download from Releases: chmod +x QBZ.AppImage && ./QBZ.AppImage
QBZ is Linux-first, but as of 2.0 macOS is out of its experimental phase and is a stable, fully supported platform — a proper player for Linux and Mac. PipeWire, ALSA, and JACK are Linux-specific backends; macOS plays through its own CoreAudio backend, including a Core Audio Direct passthrough path for bit-perfect output. Casting (Chromecast/DLNA) and Qobuz Connect work on macOS as well.
Download the DMG (Apple Silicon or Intel) from Releases and drag QBZ into Applications.
First launch: QBZ is ad-hoc signed but NOT notarized (no Apple Developer subscription), so Gatekeeper will block the first run — and on recent macOS (Sequoia / 15 and later) the old right-click → Open trick no longer works for un-notarized apps. Two ways to unlock it, pick one:
Settings route: try to open QBZ once (it gets blocked), then go to System Settings → Privacy & Security, scroll down to the message that QBZ was blocked, and click Open Anyway.
Terminal route (what the settings toggle does, minus the clicking):
xattr -dr com.apple.quarantine /Applications/QBZ.app
This removes the quarantine attribute macOS stamps on downloaded files — it's a one-time unlock for this copy of the app; updates installed through QBZ's own updater don't need it again.
Multi-device playback control using Qobuz's real-time streaming protocol. Considerably more stable as of 2.0, though full 1:1 parity with the official clients is still in progress.
As of 2.0, QBZ is a single native Rust process: the Slint UI runs in-process and talks to the same Rust core crates directly through callbacks and shared state — there is no browser engine, no webview, and no IPC bridge to serialize across (the old Tauri command-invoke boundary is gone entirely).
| Layer | Technology |
|---|---|
| Desktop shell + UI | Rust + Slint (native, single process — no webview, no IPC) |
| Audio decoding | Symphonia (all codecs) via rodio 0.22 |
| Audio backends | Linux: PipeWire, ALSA (alsa-rs, incl. Direct hw:), PulseAudio, JACK. macOS: CoreAudio (incl. Core Audio Direct) |
| Networking | reqwest (rustls-tls) |
| Database | rusqlite (bundled SQLite, WAL mode) |
| Desktop | mpris-server (Linux MPRIS), souvlaki (macOS/Windows media controls), ksni (Linux tray), keyring |
| Casting | rust_cast (Chromecast), rupnp (DLNA/UPnP), mdns-sd |
| i18n | qbz-i18n, gettext-style .po bundles compiled into the binary (7 locales) |
The Rust worksp