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-cli
With uvx
uvx --from audible-cli audible
From PyPI
pip install audible-cli
From 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 list
The [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_mode
chapter_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> -h
Create 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_*.py
files and attaches each command to the CLI.
Run:
audible hello
You 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 another
Control logging output:
audible -v debug library list
audible -v error download --all
Levels: debug
, info
, warning
, error
, critical
Default: info
- audible-cli-flask β Run
audible-cli
in 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.