Skip to main content

Audible

image image image image image CI CodeFactor Downloads

Audible is a Python low-level interface to communicate with the non-publicly Audible API.

It enables Python developers to create their own Audible services. Asynchronous communication with the Audible API is supported.

For a basic command line interface take a look at my audible-cli package. This package supports:

  • downloading audiobooks (aax/aaxc), cover, PDF and chapter files
  • export library to csv files
  • get activation bytes
  • add own plugin commands

Requirements

Python >= 3.11

Installation

Standard Installation

pip install audible

Available in audible >= 0.11.0

For significantly better performance (5-100x faster cryptographic operations), install with optional high-performance crypto backends.

Option 1: cryptography (recommended)

Modern, actively maintained, Rust-accelerated library:

pip install audible[cryptography]

Option 2: pycryptodome

Mature, C-based cryptographic library:

pip install audible[pycryptodome]

Option 3: Both (best for development/testing)

pip install audible[cryptography,pycryptodome]

Using uv:

# With cryptography
uv pip install audible[cryptography]

# With pycryptodome
uv pip install audible[pycryptodome]

# With both
uv pip install audible[cryptography,pycryptodome]

# Or run with extras (in project context)
uv run --extra cryptography your_script.py

The library automatically selects the best available provider:

  1. cryptography (preferred, Rust-accelerated)
  2. pycryptodome (C-based)
  3. legacy (pure Python fallback)

Performance improvements with optimized backends:

  • 5-10x faster AES encryption/decryption
  • 10-20x faster RSA operations
  • 3-5x faster key derivation (PBKDF2)
  • 5-10x faster hashing (SHA-256, SHA-1)

Provider Overrides (advanced)

Most applications do not need to interact with the crypto layer directly. Prefer configuring providers through high-level APIs such as Authenticator:

from audible import Authenticator
from audible.crypto_provider import CryptographyProvider, set_default_crypto_provider

# Force a specific provider for this authenticator instance
auth = Authenticator.from_file(
    "auth.json",
    password="secret",
    crypto_provider=CryptographyProvider,
)

# Optional: set a process-wide default provider, then reset to auto-detect
set_default_crypto_provider(CryptographyProvider)
...
set_default_crypto_provider()

get_crypto_providers() remains available for internal use, but it is not part of the supported public API.

Optional: High-Performance JSON Backends

Available in audible >= 0.11.0

For improved JSON serialization/deserialization performance (2-5x faster), install with optional high-performance JSON backends.

Option 1: json-full (recommended)

Complete coverage with best performance for all use cases:

pip install audible[json-full]

Includes:

  • orjson: 4-5x faster for compact JSON (API responses, metadata)
  • ujson: 2-3x faster with indent=4 support (auth files, library exports)

Option 2: json-fast

Optimized for compact JSON only:

pip install audible[json-fast]

Includes:

  • orjson: 4-5x faster for compact JSON

Option 3: Individual providers

# orjson (Rust-based, fastest for compact JSON)
pip install audible[orjson]

# ujson (C-based, excellent for pretty-printed output)
pip install audible[ujson]

# rapidjson (C++ based, alternative to ujson)
pip install audible[rapidjson]

Using uv:

# json-full (recommended)
uv pip install audible[json-full]

# json-fast
uv pip install audible[json-fast]

# Or run with extras (in project context)
uv run --extra json-full your_script.py

The library automatically selects the best available provider:

  1. orjson (Rust-based, 4-5x faster for compact JSON)
  2. ujson (C-based, 2-3x faster with indent support)
  3. rapidjson (C++ based, 2-3x faster)
  4. stdlib json (always available)

Performance improvements with optimized backends:

  • 4-5x faster compact JSON (orjson)
  • 2-3x faster pretty-printed JSON (ujson/rapidjson)
  • Smart fallback: orjson automatically uses ujson/rapidjson for indent=4

Provider Overrides (advanced)

Most applications do not need to interact with the JSON layer directly. The library automatically uses the best provider. However, you can override:

from audible.json_provider import OrjsonProvider, get_json_provider, set_default_json_provider

# Get auto-detected provider
provider = get_json_provider()
print(f"Using: {provider.provider_name}")

# Force a specific provider
data = {"key": "value"}
orjson = get_json_provider(OrjsonProvider)
json_str = orjson.dumps(data)

# Optional: set a process-wide default provider
set_default_json_provider(OrjsonProvider)

Read the Doc

The documentation can be found at Read the Docs

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the AGPL-3.0, Audible is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Credits

Thanks a lot JetBrains for supporting me with a free license This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.

Metadata

Release files for audible 0.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for audible 0.13.0
File Size Uploaded
audible-0.13.0.tar.gz 65.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for audible 0.13.0
File Interpreter ABI Platform
audible-0.13.0-py3-none-any.whl Python 3 none any Details

Total release size: 146.4 kB

Release files / audible-0.13.0.tar.gz

Download URL audible-0.13.0.tar.gz
Size 65.4 kB
Tags Source
SHA-256 checksum
How to use checksums
da0d542c00b579ab1a9c71e1d21c0c4ee73ec0ccd680db7e378a8f559320230b
BLAKE2b-256 checksum
How to use checksums
80e10b325cec1ee4059d2efe2f23118d3f17a8d78df4cad07857b1d6b04f11a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / audible-0.13.0-py3-none-any.whl

Download URL audible-0.13.0-py3-none-any.whl
Size 80.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b803e83d5154e4990b7a55a9427d8a9f4fe6cce91db9910d2f4f9e76c9ed0981
BLAKE2b-256 checksum
How to use checksums
155226ff51da1c8d604f79aff8b1b4179e51c5ad47ebc27a71aa1f9bfd956f5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.13.0 This release

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

3 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page