diff --git a/docs/advanced/advanced.md b/docs/advanced/advanced.md index 89c9ef23..d9bda5fb 100644 --- a/docs/advanced/advanced.md +++ b/docs/advanced/advanced.md @@ -14,7 +14,7 @@ To make upgrades and reinstalls easier, Libation separates all of its responsibi - Check for new Libation versions at startup. Enabled by default: each time Libation starts it asks GitHub whether a newer release exists, and offers it to you if there is one. Turn it off if something else keeps Libation up to date, such as a package manager or an AppImage updater. Turning it off only stops the automatic check - Settings > About still has a "Check for Upgrade" button that works either way. -- Device registration (experimental). Which virtual device Libation registers with Amazon when you sign in. Leave the Android emulator default unless downloads fail for titles that still play in the official Audible app. Changing it does not convert existing accounts; you must remove and re-add the account. See [Device registration](./device-registration.md). +- Device registration (experimental). Which virtual device Libation registers with Amazon when you sign in. The corrected Android registration is the default and supports Widevine; the iPhone/audible-cli alternative does not. Changing it or updating Libation does not convert existing accounts, so affected accounts must be removed and re-added. See [Device registration](./device-registration.md). - Allow Libation to fix up audiobook metadata. After decrypting a title, Libation attempts to fix details like chapters and cover art. Some power users and/or control freaks prefer to manage this themselves. By unchecking this setting, Libation will only decrypt the book and will leave metadata as-is, warts and all. diff --git a/docs/advanced/command-line-interface.md b/docs/advanced/command-line-interface.md index 02dd7e8e..859526e1 100644 --- a/docs/advanced/command-line-interface.md +++ b/docs/advanced/command-line-interface.md @@ -115,7 +115,7 @@ libationcli login-external -a you@example.com -l us --response-url "https://www. If the account row already has valid saved tokens, the CLI reports that no browser login is needed and exits without opening the flow. -Optional `--device-registration` picks which virtual device to register as on a **new** sign-in: `CurrentAndroid` (default from Settings), `RetailAndroid`, or `Mkb79IPhone`. It does nothing to an account that is already authenticated; remove the account first. See [Device registration](/docs/advanced/device-registration). +Optional `--device-registration` picks which virtual device to register as on a **new** sign-in: `CurrentAndroid` (the corrected default) or `Mkb79IPhone` (experimental; no Widevine). It does nothing to an account that is already authenticated; remove the account first. See [Device registration](/docs/advanced/device-registration). ```console libationcli login-external --account you@example.com --locale us --device-registration Mkb79IPhone diff --git a/docs/advanced/device-registration.md b/docs/advanced/device-registration.md index 0b0b9b3a..02dc98e6 100644 --- a/docs/advanced/device-registration.md +++ b/docs/advanced/device-registration.md @@ -2,9 +2,9 @@ When you sign in, Libation registers a virtual device with Amazon. Audible then ties download licenses to that device. The default is an Android emulator, which is required for [Widevine](/docs/features/audio-file-formats#use-widevine-drm). -Audible has been refusing licenses (`License Denied` / `CustomerThrottled`) for some emulator registrations even when the same title still plays in the official Audible app. If that happens, you can try an experimental registration, or import credentials from [mkb79's audible-cli](https://github.com/mkb79/audible-cli). +Older Libation versions generated an Android device serial that was twice the expected length. Audible began refusing licenses (`License Denied` / `CustomerThrottled`) for some of those registrations even when the same title still played in the official Audible app. Current versions use the corrected Android registration. -Changing this setting does **not** convert accounts you already signed in. Remove and re-add the account (or run `login-external`) after you pick a different profile. +Registration data is stored with the account, so updating Libation or changing this setting does **not** repair an account you already signed in. Remove and re-add the affected account (or run `login-external`) to register it again. Try the corrected Android default first. If Audible still refuses licenses, the experimental iPhone/audible-cli profile is available as an alternative; you can also import credentials from [mkb79's audible-cli](https://github.com/mkb79/audible-cli). ## Where to find it @@ -12,38 +12,37 @@ Changing this setting does **not** convert accounts you already signed in. Remov - **Classic:** Settings -> Import library -> **Device registration (experimental)** - **CLI / Docker:** `DeviceRegistrationKind` in `Settings.json`, or `--device-registration` on `login-external`. See [Command Line Interface](/docs/advanced/command-line-interface#log-in-with-an-external-browser-login-external). -## The three profiles +## The two profiles | Setting value | Label in Settings | Widevine | What it registers | |---------------|-------------------|----------|-------------------| -| `CurrentAndroid` | Android emulator (default) | Yes | The emulator Libation has used for years | -| `RetailAndroid` | Android Pixel (experimental) | Yes | Same Android Audible app as the default, with a retail Pixel fingerprint | +| `CurrentAndroid` | Android emulator (default) | Yes | The corrected Android Audible app registration | | `Mkb79IPhone` | iPhone / audible-cli (experimental; no Widevine) | No | The virtual iPhone used by audible-cli | -Leave the default unless downloads fail for titles that still work in the official app. +`RetailAndroid` appeared briefly in Libation 14.1 but is no longer a separate option. Existing `RetailAndroid` values are treated as `CurrentAndroid`. -## How to apply a new profile +## How to register an account again -1. Pick the profile in Settings (or set `DeviceRegistrationKind` / `--device-registration`). +1. Leave **Android emulator (default)** selected unless you specifically want to try the iPhone alternative. 2. Remove the account from Libation. Existing Amazon device records keep the old registration until you sign in again. 3. Add the account and sign in, or run `login-external`. 4. Scan and try the download again. -Importing an audible-cli JSON file with `import-account` is the other workaround: those credentials already come from audible-cli's iPhone registration, so you do not need to change this setting first. +If the corrected Android registration is still denied, repeat those steps with **iPhone / audible-cli**, or import an audible-cli JSON file with `import-account`. Imported audible-cli credentials already use its iPhone registration, so you do not need to change this setting first. ## Widevine -**Use Widevine DRM** only works when the account was registered as an Android Audible app (`CurrentAndroid` or `RetailAndroid`). The iPhone profile cannot use Widevine. If you need Widevine later, remove the account and sign in again with an Android profile. +**Use Widevine DRM** only works when the account was registered with `CurrentAndroid`. The iPhone profile cannot use Widevine. If you need Widevine later, remove the account and sign in again with the Android profile. ## Settings.json (Docker and CLI) ```json { - "DeviceRegistrationKind": "RetailAndroid" + "DeviceRegistrationKind": "Mkb79IPhone" } ``` -Accepted values: `CurrentAndroid`, `RetailAndroid`, `Mkb79IPhone`. Then remove the account and sign in again. `login-external --device-registration Mkb79IPhone` overrides Settings for that one sign-in. +Supported choices are `CurrentAndroid` and `Mkb79IPhone`. Then remove the account and sign in again. `login-external --device-registration Mkb79IPhone` overrides Settings for that one sign-in. A legacy `RetailAndroid` value behaves as `CurrentAndroid`. ## If it still fails diff --git a/docs/advanced/troubleshoot.md b/docs/advanced/troubleshoot.md index e9a7a4fa..4ed824bc 100644 --- a/docs/advanced/troubleshoot.md +++ b/docs/advanced/troubleshoot.md @@ -264,7 +264,7 @@ Symptoms include a crash on startup that mentions `LibationContext.db` under a p These errors come from Audible refusing to grant a download license. Common causes: 1. **Temporary Audible outage or Plus throttling** -- wait 24 to 48 hours and try again. See the [FAQ](/docs/frequently-asked-questions). -2. **Virtual-device registration** -- the official Audible app can play the title, but Libation cannot. Try an [experimental device registration](/docs/advanced/device-registration) (then remove and re-add the account), or import credentials from [audible-cli](https://github.com/mkb79/audible-cli). +2. **Old virtual-device registration** -- older Libation versions used an invalid Android device serial length. If the official Audible app can play the title but Libation cannot, remove and re-add the account so it gets the corrected Android registration. If that still fails, try the [experimental iPhone registration](/docs/advanced/device-registration) or import credentials from [audible-cli](https://github.com/mkb79/audible-cli). 3. **Title requires Widevine** -- some Plus titles no longer download as AAXC; enable **Use Widevine DRM** in Settings and re-add your account if prompted. The iPhone registration cannot use Widevine. See [issue #1580](https://github.com/rmcrackan/Libation/issues/1580) and [Device registration](/docs/advanced/device-registration#widevine). 4. **Spatial / Dolby Atmos requested (older Libation versions)** -- Audible now requires Widevine L1 for many spatial titles. Libation 13.1.3+ no longer offers spatial download. See [Spatial Audio & DRM](/docs/advanced/spatial-audio). 5. **You no longer have rights to the title** -- it was returned, it left the Plus catalog, or the account that owned it is no longer active. Check the title in the Audible app or website. diff --git a/docs/features/daily-download-limit.md b/docs/features/daily-download-limit.md index db909642..da28a303 100644 --- a/docs/features/daily-download-limit.md +++ b/docs/features/daily-download-limit.md @@ -74,4 +74,4 @@ A container that liberates on a schedule combines well with a limit: each run do ## When a license is denied anyway -If Audible refuses a license despite the limit, Libation waits before asking about that title again instead of re-requesting it on every run. See [Retrying titles Audible refuses](/docs/features/retrying-refused-downloads). If the official Audible app can still play the title, try an [experimental device registration](/docs/advanced/device-registration) or import credentials from audible-cli. +If Audible refuses a license despite the limit, Libation waits before asking about that title again instead of re-requesting it on every run. See [Retrying titles Audible refuses](/docs/features/retrying-refused-downloads). If the official Audible app can still play the title, remove and re-add the account to get the corrected Android registration. See [Device registration](/docs/advanced/device-registration) for the experimental iPhone alternative and audible-cli import. diff --git a/docs/features/retrying-refused-downloads.md b/docs/features/retrying-refused-downloads.md index 0cdf3b7d..4dfe1323 100644 --- a/docs/features/retrying-refused-downloads.md +++ b/docs/features/retrying-refused-downloads.md @@ -15,9 +15,10 @@ Without this, a title Audible had just refused was requested again on the very n refused licenses every run, forever: pointless traffic to Audible, which itself risks throttling, and a console and log full of the same warning for the same titles. -If the official Audible app can play a title that Libation cannot download, that can be the virtual device -Libation registered at sign-in rather than the wait described here. See [Device -registration](/docs/advanced/device-registration). +If the official Audible app can play a title that Libation cannot download, the account may still have the +invalid Android registration created by an older Libation version. Remove and re-add the account to get the +corrected registration. See [Device registration](/docs/advanced/device-registration) for details and the +experimental iPhone alternative. ## How long Libation waits diff --git a/docs/frequently-asked-questions.md b/docs/frequently-asked-questions.md index 15592c87..78b88e30 100644 --- a/docs/frequently-asked-questions.md +++ b/docs/frequently-asked-questions.md @@ -71,7 +71,9 @@ Full steps: [Troubleshooting - Failed to decrypt ExistingAccessToken](/docs/adva That is Audible refusing a download license, not a Libation decrypt bug. Wait 24 to 48 hours if you just downloaded many Plus titles. -If the official app can play the title and waiting does not help, try an [experimental device registration](/docs/advanced/device-registration): pick a profile in Settings, then **remove and re-add the account** (or `login-external`). You can also import credentials from [audible-cli](https://github.com/mkb79/audible-cli). Changing the setting does not convert accounts you already signed in. +If the official app can play the title and waiting does not help, **remove and re-add the account** (or run `login-external`). Older Libation versions registered Android devices with an invalid serial length, and existing accounts keep that old registration after an update. Current versions use the corrected Android registration by default. + +If registering again with Android does not help, try the experimental iPhone/audible-cli option described under [Device registration](/docs/advanced/device-registration), or import credentials from [audible-cli](https://github.com/mkb79/audible-cli). See [Troubleshooting](/docs/advanced/troubleshoot#download-fails-with-drm-license-response-not-ok-or-content-license-denied). diff --git a/docs/index.md b/docs/index.md index 3bc27cff..58f62d39 100644 --- a/docs/index.md +++ b/docs/index.md @@ -32,7 +32,7 @@ Learn about Libation's powerful features: - **[Advanced Topics](/docs/advanced/advanced)** - Deep dives and configuration details - **[Command Line Interface](/docs/advanced/command-line-interface)** - CLI usage and commands -- **[Device registration](/docs/advanced/device-registration)** - Experimental login profiles when Audible denies download licenses +- **[Device registration](/docs/advanced/device-registration)** - Re-register affected accounts and choose the experimental iPhone alternative - **[Troubleshooting](/docs/advanced/troubleshoot)** - Common errors and solutions - **[Spatial Audio & DRM](/docs/advanced/spatial-audio)** - Why Dolby Atmos download is not available and what still works diff --git a/docs/installation/docker.md b/docs/installation/docker.md index c4224e3d..cd1cfdda 100644 --- a/docs/installation/docker.md +++ b/docs/installation/docker.md @@ -52,7 +52,7 @@ If you run Libation on a server or in Docker and do not want to copy `AccountsSe - `login-external` — Browser-based sign-in: the CLI prints an Audible login URL; you open it in a normal browser, sign in, then paste the final URL from the address bar back into the terminal. Example: `LibationCli login-external --account you@example.com --locale us` If standard input is not a TTY (for example in some automation), pass the final URL with `--response-url "https://..."` instead of pasting interactively. - Optional `--device-registration CurrentAndroid|RetailAndroid|Mkb79IPhone` applies only to a new sign-in; remove the account first. See [Device registration](/docs/advanced/device-registration). + Optional `--device-registration CurrentAndroid|Mkb79IPhone` applies only to a new sign-in; remove the account first. Android is the corrected default and supports Widevine; iPhone is experimental and does not. See [Device registration](/docs/advanced/device-registration). - `list-accounts` — List configured accounts and whether each has valid stored credentials (and scan-on/off). Example: `LibationCli list-accounts` or `LibationCli list-accounts --bare` for tab-separated output. diff --git a/index.md b/index.md index 2cab72ed..d401430f 100644 --- a/index.md +++ b/index.md @@ -82,7 +82,7 @@ Learn about Libation's powerful features: - **[Advanced Topics](/docs/advanced/advanced)** - Deep dives and configuration details - **[Command Line Interface](/docs/advanced/command-line-interface)** - CLI usage and commands -- **[Device registration](/docs/advanced/device-registration)** - Experimental login profiles when Audible denies download licenses +- **[Device registration](/docs/advanced/device-registration)** - Re-register affected accounts and choose the experimental iPhone alternative - **[Troubleshooting](/docs/advanced/troubleshoot)** - Common errors and solutions - **[Spatial Audio & DRM](/docs/advanced/spatial-audio)** - Why Dolby Atmos download is not available and what still works