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

Recommended: With Performance Optimizations

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.

Release files for audible 0.12.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.12.0
File Size Uploaded
audible-0.12.0.tar.gz 64.6 kB Details

Built distribution (wheel)

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

Total release size: 144.8 kB

Release files / audible-0.12.0.tar.gz

Download URL audible-0.12.0.tar.gz
Size 64.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f7a7bb07af34b81d8330a1919ccfb7e44faed91d4f965a072ef6449ddd42768b
BLAKE2b-256 checksum
How to use checksums
02f2ae93d76bae1dcb77484de0a1e5657b38cff1f436959fc0e4a86e8d543b6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 23, 2026.

Transparency log

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

Download URL audible-0.12.0-py3-none-any.whl
Size 80.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8065d30a99f5aef804d166264aac4eceb056ea662bb5a58ccff63a54c914f13
BLAKE2b-256 checksum
How to use checksums
a049a7765d7a1a28c0e693d84ee3deb0e243799814eb3732dcf8ae3cdccc0a26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

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