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.
