๐ Authentication
Connect your Qobuz account with a browser session token, stored in the macOS Keychain
Qobuz defends password login with captchas and IP-flagging, so qobuz-cli never asks for your password. Instead it borrows the user_auth_token that your logged-in browser already holds, validates it, and stores it in the macOS Keychain. Every other command reuses that stored session.
๐ qobuz login
Connects your account. The flow:
- Prints instructions and opens play.qobuz.com/login after a short countdown.
- Pre-fills
X-App-Idby scraping the current app id from the web-player bundle โ press Enter to accept the suggestion in brackets. - Prompts for
X-User-Auth-Token(input is hidden as you paste). - Validates the pair against the live API, then saves
{ appId, token }to the Keychain.
$ qobuz login
Connect your Qobuz account.
In the page that opens: log in, then DevTools โ Network, click any
request to www.qobuz.com/api.json and copy these from its headers:
X-App-Id [123456789]:
X-User-Auth-Token: ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท
Validatingโฆ โ connected. Session saved to the Keychain (service "qobuz").Finding the token in your browser
- Open play.qobuz.com and log in.
- Open DevTools โ Network, and click any request to
www.qobuz.com/api.json. - From its Request Headers, copy
X-User-Auth-Token(andX-App-Idif you'd rather not use the scraped default).
If validation fails (โ โฆ), the token was rejected โ grab a fresh one from a currently logged-in session and retry. Nothing is saved unless validation passes.
๐ช qobuz logout
Clears the stored session from the Keychain. The next command will require qobuz login again.
$ qobuz logout
โ logged out. Keychain session cleared.๐๏ธ Where credentials live
Credentials are kept in the macOS Keychain under service qobuz, account credentials โ never in a plaintext dotfile, and no password is ever stored. You can inspect the entry in Keychain Access (search for "qobuz") or with the security CLI.
Under the hood the CLI uses the core's createKeychainStore(); the same token works from any @kud/qobuz consumer pointed at the same store. See the core Authentication docs for the credential-store model.