Audible Downloader Browser conversion · open source

Your Audible library,
converted on your device.

Sign in, load your library, and save the titles you own as plain M4B files. The browser does the conversion; Cloudflare only handles the small auth/API calls and the CDN byte relay needed for CORS.

How it works
In your browser
  • Renders this page, stores your Audible identity in localStorage, and signs requests with the ADP token Amazon issued to your device registration.
  • Runs a custom ffmpeg.wasm core (no decoders or encoders — just the mov demuxer with Audible's audible_key / audible_iv path and the mp4/ipod muxers).
  • Streams the encrypted source from Audible's CloudFront, decrypts it in WebAssembly, and writes the M4B to your file system with showSaveFilePicker.
On Cloudflare Pages
  • functions/auth/login opens an Amazon OAuth flow with a PKCE challenge and swaps the returned code for ADP tokens by hitting api.amazon.<tld>/auth/register on your behalf.
  • functions/library and functions/license/[asin] are thin pass-throughs to api.audible.<tld>, signing each request with the private key your browser holds and forwarding the response back unchanged.
  • functions/source is a byte proxy for Audible's CloudFront audio (so the browser can read the file despite the CDN's CORS policy). It does not store, decrypt, or transcode anything — just relays bytes with a Range header.
What is not here
  • No database, no KV, no R2. Cloudflare has nothing about you between requests.
  • No analytics, no tracking pixels. The only outbound calls are to Audible / Amazon, Amazon's image CDN for cover art, and the GitHub / Buy Me a Coffee embeds.
  • No DRM bypass for content you do not own. The flow only converts books already in the signed-in Audible account, using the licence data Amazon returns to the registered device.

Source on GitHub — the Pages Functions and ffmpeg build script are there to inspect.

Step one

Connect Audible

Not signed in
Step two

Your library

Not loaded