-
-
Notifications
You must be signed in to change notification settings - Fork 45
Casting and Remote Control
QBZ can send audio to a Chromecast or a DLNA renderer, act as a Qobuz Connect target you drive from the official Qobuz apps, and — through the headless Headless Daemon — expose an HTTP control plane and MPRIS for building your own remotes.
Click the Cast icon in the Now Playing bar to open the device picker. It has two tabs — Chromecast and DLNA — and both networks are scanned automatically while the picker is open. Pick a device to hand playback off to it; the Now Playing bar keeps driving transport (play/pause/next/prev, volume, and seek) while casting.
Stream audio from QBZ to any Chromecast-compatible device.
- Devices are discovered automatically on your local network (mDNS)
- Open the Cast picker, choose your Chromecast, and playback transfers to it
Stream to DLNA/UPnP renderers — network receivers, streamers, and speakers.
- DLNA renderers appear under the DLNA tab of the same picker
- QBZ serves the audio itself (it acts as the media server) and streams the bytes to the renderer
- DSD and hi-res PCM are served to capable DLNA renderers (#646), including native-DSD MIME conventions for strict, high-end renderers (e.g. HQPlayer). Playback self-heals with a fresh Play after a track ends naturally
DLNA targets are media renderers (things that play audio). QBZ is not casting to a media server — it is the server, feeding the renderer.
QBZ never lies about what a cast device is actually receiving.
- Delivered-quality badge — the Now Playing quality badge shows the quality the device is really getting, and when it's lower than the source it names why (device cap, the per-device quality cap you set, or the source). A downgrade arrow appears on the badge, with a tooltip contrasting the source's catalog maximum against the measured output.
- Measured, not assumed — QBZ probes the stream's STREAMINFO, so a FLAC serve is never mislabeled as MP3 even when it exceeds a cap.
- Honors your streaming quality — casting follows your streaming quality preference (in Audio Configuration) instead of always forcing the maximum; the prefetch runs at the cast-effective tier while casting.
- Per-renderer quality cap — each device in the Cast picker has a quality-cap row. Set a cap for a streamer that struggles with HiFi or high sample rates, and QBZ clamps cast requests to it. The cap is remembered per device (stored locally on that machine).
QBZ can act as a Qobuz Connect receiver — it shows up inside the official Qobuz apps (phone, desktop, web) as a castable device, the way a hardware streamer would. Cast to it from the Qobuz app and it plays on the machine running QBZ.
- Desktop QBZ exposes a Connect endpoint you can target from the Qobuz apps.
- The headless Headless Daemon (
qbzd) does the same with no window open — its single biggest feature. A Raspberry Pi wired to your DAC becomes a Qobuz Connect target you control entirely from your phone. See Build a Streaming Box for the full walkthrough.
The way to drive QBZ programmatically over your LAN is the Headless Daemon (qbzd), which runs a small HTTP control plane.
-
Plain HTTP on port
8182, bound to0.0.0.0by default so any machine on your LAN can reach it -
Origin shield, always on — requests carrying a browser
Originheader are rejected, so a random web page can't drive the port (an<img>tag sends no Origin, so artwork URLs still work) -
Optional bearer token — set
[server] tokeninqbzd.tomland every route except/api/pingrequiresAuthorization: Bearer <token> - Full transport, queue editing, search, browse, live events (SSE), and current-artwork endpoints — enough to build a Plasma widget, a bar applet, a web dashboard, or a home-automation rule
The desktop app itself does not run an HTTP remote-control server. Use qbzd for HTTP control, or MPRIS (below) for desktop-native remotes.
See Headless Daemon API for the endpoints, JSON shapes, and worked examples.
Both desktop QBZ and the daemon publish org.mpris.MediaPlayer2 on the session bus, so you can control playback without any custom client:
- Hardware media keys — play, pause, next, previous
- Desktop media widgets — GNOME/KDE media controls, plasmoids, and lock-screen controls
- Track metadata and artwork are pushed to the widget as they change
On the desktop this is enabled automatically. On the daemon it's on by default wherever a session bus exists (toggle via the setup TUI's playback.mpris, or the QBZD_MPRIS override). See Integrations for more on MPRIS.
Getting Started
Audio
Appearance
My QBZ
Features
Help