foobar2000 plugin for accessing the Qobuz streaming platform
  • C++ 75.9%
  • CMake 20.8%
  • C 3.3%
Find a file
Carl Kittelberger afb95e12d2
Some checks failed
Build (Linux cross-compile) / build (push) Has been cancelled
Build (Linux cross-compile) / Build .fb2k-component (Linux cross-compile) (push) Has been cancelled
Release / build (push) Has been cancelled
Release / Create GitHub release (push) Has been cancelled
Release / Build .fb2k-component (Linux cross-compile) (push) Has been cancelled
build: fix CMAKE_BUILD_TYPE compiler flags list syntax
Use CMake list syntax (semicolon-separated) for _MSVC_COMMON variable
instead of space-separated string. When expanding ${_MSVC_COMMON} in
target_compile_options(), CMake was treating the space-separated string
as a single argument instead of multiple flags, causing clang-cl to fail
with 'no such file or directory' error.
2026-05-26 23:01:00 +02:00
.github/workflows chore(deps): update actions/download-artifact action to v8 2026-05-26 20:45:28 +00:00
cmake
compat-include build: replace include symlinks with #include 2026-04-28 11:22:09 +02:00
compat-include-msvc build: replace include symlinks with #include 2026-04-28 11:22:09 +02:00
src feat: add version detection and DLL metadata from Git tags 2026-05-26 22:28:50 +02:00
third_party/nlohmann
.gitignore
CMakeLists.txt build: fix CMAKE_BUILD_TYPE compiler flags list syntax 2026-05-26 23:01:00 +02:00
CMakePresets.json ci: fix windows build 2026-05-26 01:30:39 +02:00
LICENSE
README.md
renovate.json chore(config): migrate config renovate.json 2026-05-26 20:11:58 +00:00
toolchain-clang-msvc-x86.cmake build: suppress C4005 macro redefinition in clang-cl with /wd4005 2026-05-26 03:02:56 +02:00
toolchain-clang-msvc.cmake build: suppress C4005 macro redefinition in clang-cl with /wd4005 2026-05-26 03:02:56 +02:00
toolchain-mingw64.cmake

foo_qobuz — Qobuz streaming plugin for foobar2000

Streams music from Qobuz directly inside foobar2000.

Features

  • Search tracks and albums by artist, title, or album name via View → Qobuz → Search…
  • Playlist integration — search results can be added to a new playlist or played immediately
  • Full metadata — title, artist, album, track/disc number, year, genre, ISRC, and more
  • Hi-res audio — supports up to 192 kHz / 24-bit FLAC depending on your subscription
  • Album art extraction
  • Preferences page at File → Preferences → Tools → Qobuz
  • Tracks are stored as qobuz://track/<id> URIs and work in saved playlists
  • Direct URL support — paste or drag a Qobuz share URL to play it immediately:
    • Track URLs: https://open.qobuz.com/track/<id>
    • Album URLs: https://play.qobuz.com/album/<id>, https://open.qobuz.com/album/<id>
    • Playlist URLs: https://play.qobuz.com/playlist/<id>, https://open.qobuz.com/playlist/<id>, https://www.qobuz.com/<locale>/playlists/<slug>/<id>

Requirements

  • foobar2000 1.6 or later (32-bit or 64-bit build)
  • A Qobuz account — Studio or Sublime subscription required for lossless / hi-res

Configuration

Open File → Preferences → Tools → Qobuz.

Auth token (required)

The auth token is the Qobuz user authentication token that identifies your account. To obtain it:

  1. Log in to the Qobuz web player in your browser.
  2. Open the browser developer tools (F12) → Application tab → Local Storagehttps://play.qobuz.com.
  3. Find the key user_auth_token and copy its value.

Alternatively, if you have qobuz-dl configured, the token is stored in ~/.config/qobuz-dl/config.ini under the key auth_token.

Paste the token into the Auth token field and click Apply.

Audio quality

Choose the maximum stream quality. foobar2000 will receive the best available quality up to this setting:

Setting Format ID Details
Studio Master 27 24-bit FLAC, up to 192 kHz
Hi-Res 7 24-bit FLAC, up to 96 kHz
CD Quality 6 16-bit FLAC, 44.1 kHz
MP3 320 kbps 5 Lossy

Advanced overrides (optional)

The plugin automatically scrapes its app_id and signing secrets from the Qobuz web player at startup, so these fields are normally left empty. Fill them in only if the auto-fetch fails:

  • App ID — Qobuz application identifier
  • Secret — signing secret used to authenticate API requests

Building

Prerequisites

Tool Purpose
CMake ≥ 3.16 Build system
clang-cl (Clang ≥ 15) Cross-compiler (Linux only)
xwin Downloads MSVC headers and Windows SDK (Linux only)

The foobar2000 SDK is downloaded automatically at configure time from foobar2000.org/SDK. To use a local copy, pass -DFB2K_SDK_DIR=/path/to/sdk.


Linux — cross-compile for Windows (64-bit and 32-bit)

The plugin uses xwin to obtain the MSVC-compatible headers and Windows SDK libraries needed by the foobar2000 SDK (which requires the MSVC ABI). Headers are downloaded automatically on first configure if XWIN_ACCEPT_LICENSE=ON is set.

License notice — by setting XWIN_ACCEPT_LICENSE=ON you accept the Microsoft Visual C++ license.

64-bit (x86-64)

cmake --preset linux-cross -DXWIN_ACCEPT_LICENSE=ON
cmake --build build-clang --target foo_qobuz
# Output: build-clang/foo_qobuz.dll

32-bit (x86)

cmake --preset linux-cross-x86 -DXWIN_ACCEPT_LICENSE=ON
cmake --build build-clang-x86 --target foo_qobuz
# Output: build-clang-x86/foo_qobuz.dll

Note

— The 32-bit cross-toolchain targets i686-pc-windows-msvc. Ensure your Clang installation includes the i686-pc-windows-msvc target (on Debian/Ubuntu: llvm and clang packages include it).


Windows — native build

No additional tools are required; CMake uses MSVC or clang-cl from your Visual Studio installation and resolves the Windows SDK automatically.

Visual Studio 2022 — 64-bit

cmake --preset windows-msvc
cmake --build build-msvc --target foo_qobuz

Visual Studio 2022 — 32-bit

cmake --preset windows-msvc-x86
cmake --build build-msvc-x86 --target foo_qobuz

clang-cl (Ninja) — 64-bit

Run from a 64-bit Visual Studio Developer Command Prompt:

cmake --preset windows-clang-cl
cmake --build build-clang-win --target foo_qobuz

clang-cl (Ninja) — 32-bit

Run from a 32-bit (x86) Visual Studio Developer Command Prompt:

cmake --preset windows-clang-cl-x86
cmake --build build-clang-win-x86 --target foo_qobuz

Packaging a .fb2k-component

A .fb2k-component file is a ZIP archive with the 32-bit DLL at the root and the 64-bit DLL under x64/. Build both architectures first, then package them together.

Example (Linux, after building both arches)

cmake --preset linux-cross -DXWIN_ACCEPT_LICENSE=ON \
      -DFB2K_COMPONENT_EXTRA_DLL="$(pwd)/build-clang-x86/foo_qobuz.dll"
cmake --build build-clang --target foo_qobuz_component
# Output: build-clang/foo_qobuz.fb2k-component

Or invoke the packaging script directly without reconfiguring:

cmake \
  -DFOO_DLL="$(pwd)/build-clang/foo_qobuz.dll" \
  -DOUTPUT="$(pwd)/foo_qobuz.fb2k-component" \
  -DARCH_X86=FALSE \
  -DEXTRA_DLL="$(pwd)/build-clang-x86/foo_qobuz.dll" \
  -P cmake/package_component.cmake

The FB2K_COMPONENT_EXTRA_DLL variable is optional — if omitted, the package contains only the architecture you built.

Installation

  1. Open foobar2000 Preferences → Components.
  2. Click Install… and select foo_qobuz.fb2k-component.
  3. Click OK and restart foobar2000 when prompted.

License

This project is licensed under the GNU General Public License v3.0 or later (SPDX: GPL-3.0-or-later). See LICENSE for the full text.

Qobuz is a registered trademark of Xandrie SA. This project is not affiliated with or endorsed by Qobuz.