A powerful command-line tool for managing and downloading your Audible audiobooks.
  Built with β€οΈ in Python.
- π Manage multiple Audible accounts (profiles)
 - π Browse and export your library and wishlist
 - π§ Download audiobooks in AAXC or AAX with metadata & chapters
 - β‘ Fast HTTP requests powered by httpx
 - π οΈ Plugin system for custom commands & extensions
 - π» Cross-platform: Linux, macOS, Windows
 - π Prebuilt executables (no Python required)
 
With uv tool (recommended)
uv tool install audible-cliWith uvx
uvx --from audible-cli audibleFrom PyPI
pip install audible-cliFrom GitHub
git clone https://github.com/mkb79/audible-cli.git
cd audible-cli
pip install .Donβt want to install Python?
Prebuilt binaries are available on the releases page.
- 
Run the interactive setup:
audible quickstart
β creates config, profile, and auth file.
 - 
List your library:
audible library list
 - 
Download your entire library:
audible download --all --aax
 
| Goal | Command | 
|---|---|
| List all audiobooks | audible library list | 
| Export library to JSON | audible library export --output library.json | 
| Add to wishlist | audible wishlist add --asin B004V00AEG | 
| Download since date | audible download --start-date "2023-01-01" --aaxc --all | 
| Switch profile | audible -P germany library list | 
audible-cli stores its configuration files in an app directory.
| OS | Path | 
|---|---|
| Windows | C:\Users\<user>\AppData\Local\audible | 
| Linux | ~/.audible | 
| macOS | ~/.audible | 
You can override this by setting the environment variable:
export AUDIBLE_CONFIG_DIR=/path/to/dir- Name: 
config.toml - Format: TOML
 - Structure:
[APP]section β global defaults[profile.<name>]section β settings per Audible account
 
Example:
[APP]
primary_profile = "default"
filename_mode   = "ascii"
chapter_type    = "tree"
[profile.default]
auth_file    = "auth.json"
country_code = "us"
[profile.germany]
auth_file    = "auth_de.json"
country_code = "de"- Each profile corresponds to an Audible account or marketplace
 - Contains:
auth_fileβ authentication filecountry_codeβ Audible marketplace (us,de,uk, β¦)
 - Switch profiles with:
 
audible -P germany library listThe [APP].primary_profile is used if no profile is specified.
- Stored in the same app directory as the config file
 - Can be password-protected:
 
audible -p "mypassword" download --asin <ASIN>- If no password is passed, you will be prompted with hidden input
 
π§ APP section
primary_profile: default profile if none is specifiedfilename_mode: filename handling for downloadsascii(default)- override with 
--filename-mode 
chapter_type: chapter format for downloadstree(default)- override with 
--chapter-type 
π€ Profile section
auth_file: authentication file for this profilecountry_code: Audible marketplacefilename_mode: overrides[APP].filename_modechapter_type: overrides[APP].chapter_type
- activation-bytes β Manage DRM activation keys
 - api β Call raw Audible API endpoints
 - download β Download audiobooks
 - library β List, export your library
 - wishlist β Manage wishlist (list, add, remove, export)
 - manage β Profiles, configs, auth-files
 - quickstart β Interactive setup
 
Show help:
audible <command> -hCreate a file in the plugin folder, e.g. cmd_hello.py:
import click
@click.command(name="hello")
def cli():
    click.echo("Hello from plugin!")Important: A custom plugin must start with the prefix
cmd_. The loader scans forcmd_*.pyfiles and attaches each command to the CLI.
Run:
audible helloYou can also distribute plugins as Python packages via entry points.
The entry point group is audible.cli_plugins.
[project]
name = "audible-myplugin"
version = "0.1.0"
dependencies = ["audible-cli", "click"]
[project.entry-points."audible.cli_plugins"]
my_command = "myplugin.cli:my_command"
another    = "myplugin.cli:another"After installation, your plugin commands will automatically be available in audible:
audible my-command
audible anotherControl logging output:
audible -v debug library list
audible -v error download --allLevels: debug, info, warning, error, critical
Default: info
- audible-cli-flask β Run 
audible-cliin a Flask web server - audible-series β Organize series from your library
 
Want your add-on listed? β Open a PR or issue π
Contributions welcome!
- File issues
 - Open pull requests
 - Share plugins and add-ons
 
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only).
See LICENSE for details.
