- Narrator
- —
- Length
- —
- Series
- —
- Released
- —
- Language
- —
- Publisher
- —
Your Audible library,
converted on your device.
Sign in to Audible, load your library, and save the titles you own as plain M4B files with chapters, cover art and tags intact. The conversion runs in your browser; the small backend only carries the bytes Audible refuses to hand directly to a web page.
- 01Per-book AAXC decryption in WebAssemblyA trimmed
ffmpeg.wasmcore (~383 KiB gzipped) takes the unique per-bookaudible_key/audible_ivAudible issues to your registered device and stream-copies the AAXC bytes straight into MP4. Nothing is uploaded, nothing is re-encoded, nothing is decrypted on a server — and there is noaaxcleanbinary, helper tool or download step to install. - 02Keys never leave the deviceYour Audible device's RSA private key lives in browser storage and signs each Audible API call client-side with WebCrypto. The backend forwards signatures it cannot reproduce. The per-book voucher is decrypted in-browser the same way.
- 03M4B with chapters & coverStream-copied AAC audio, the original cover art from the AAXC source, the full chapter list and the standard iTunes metadata, ready for any audiobook player.
How it works
- Each AAXC file carries its own AES-128 key + IV pair. The browser requests the licence from
api.audible.<tld>/1.0/content/<asin>/licenserequest, then decrypts the returned voucher locally with an AES-256-CBC key derived fromSHA-256(deviceType ‖ deviceSerial ‖ amazonAccountId ‖ asin). The plaintext yields the per-bookkeyandiv. - Those bytes feed straight into ffmpeg via
-audible_key/-audible_iv. Themovdemuxer recognises theaaxcbrand and decrypts on the fly while stream-copying into MP4. No second pass, no temporary plaintext file, no helper binary likeaaxclean— it is all one WebAssembly worker. - The trimmed core ships only what this job needs:
movdemuxer with the audible decryption hook,mp4/ipodmuxers,aacparser, andmjpegparser/decoder so the cover art survives the round-trip.
- Holds one or more signed-in Audible identities in
localStorageand IndexedDB, keyed by Amazon account ID. The RSA private key stays here and is used to sign every Audible API call via WebCrypto. - Streams the encrypted AAXC source into the Origin Private File System, mounts that file into ffmpeg as a WORKERFS read, and writes the finished M4B straight to the location you picked in the save dialogue.
- Multiple downloads queue and run one at a time so a single ffmpeg worker handles the run end-to-end, with cancel, progress, ETA and resume across reloads.
functions/auth/logindrives Amazon's mobile-device OpenID flow with a PKCE challenge and exchanges the returned code atapi.amazon.<tld>/auth/registerfor the ADP token your browser keeps. The Function never sees a credential.functions/libraryandfunctions/license/[asin]take the headers your browser signed, attach them to a fetch againstapi.audible.<tld>, and forward the response. They produce nothing they could not regenerate from your next request.functions/sourceis a byte relay for the Audible CloudFront audio host (the CDN will not serve a browser directly). Each relayed URL is HMAC-signed by the licence Function with a secret you set on the project, and verified on every range request before any bytes are fetched.
- No database, KV, or R2. Cloudflare keeps nothing about you between requests, and the source proxy reads no body before passing it on.
- No analytics, telemetry, third-party fonts or tracking pixels. Outbound calls from the browser go to Audible, Amazon, and Amazon's cover-image CDN. That is the entire list.
- No DRM bypass for content you do not own. The flow only converts titles already in the signed-in Audible library, using the licence Amazon returns to the registered device.
Source on GitHub. The Pages Functions, the ffmpeg build script and the small test suite are all there to read.
Connect Audible
Sign in through Amazon's own Audible page. Your password is typed on Amazon and never reaches this app; the only thing that comes back here is the authorisation URL Amazon shows on the final step, which the device handshake needs to mint your local keys.
Amazon hands the authorisation code back as the URL of a page on its own domain. The page itself shows "Looking for Something?" — that's expected; the code is in the address bar.
-
Pop-up opened
Amazon's sign-in is in a new window. If your browser blocked it, click Re-open Amazon sign-in.
-
Sign in on Amazon
Use the same credentials as the Audible mobile app. Two-factor prompts work as normal.
-
Copy the URL
You'll land on a 404 page on audible.co.uk. Ignore the page itself and copy the entire URL from the address bar.
The page will read "Looking for Something? Sorry, the web address you have entered is not a functioning page on our site." — that is the page you want.
-
Finish here
Back in this tab, click Finish sign-in. If clipboard access is granted, the URL is picked up automatically; otherwise paste it in below.
Clipboard didn't work? Paste the URL yourself.
Output settings
Download history
Your library
Export
Conversion
No WASM run yet.