- C++ 75.9%
- CMake 20.8%
- C 3.3%
|
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
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.
|
||
|---|---|---|
| .github/workflows | ||
| cmake | ||
| compat-include | ||
| compat-include-msvc | ||
| src | ||
| third_party/nlohmann | ||
| .gitignore | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| LICENSE | ||
| README.md | ||
| renovate.json | ||
| toolchain-clang-msvc-x86.cmake | ||
| toolchain-clang-msvc.cmake | ||
| 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>
- Track URLs:
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:
- Log in to the Qobuz web player in your browser.
- Open the browser developer tools (F12) → Application tab → Local Storage →
https://play.qobuz.com. - Find the key
user_auth_tokenand 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=ONyou 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 thei686-pc-windows-msvctarget (on Debian/Ubuntu:llvmandclangpackages 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
- Open foobar2000 Preferences → Components.
- Click Install… and select
foo_qobuz.fb2k-component. - 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.