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.1

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.1
File Size Uploaded Provenance
audible-0.13.1.tar.gz 65.7 kB With provenance Details

Built distribution (wheel)

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

Total release size: 147.1 kB

Release files / audible-0.13.1.tar.gz

Download URL audible-0.13.1.tar.gz
Size 65.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b3d1d68b9725d74058d5967b755af13d1249a72cb62dbe06d10c70ac57710823
BLAKE2b-256 checksum
How to use checksums
c94a50502d1efcd2f5588ba0ae7ae9f84325b2d9b82928e49354e8e69bef2a09
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 24, 2026.

Transparency log

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

Download URL audible-0.13.1-py3-none-any.whl
Size 81.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
616d70d6bdc352c7b01ebd38f7a351748ee1a561eb5d1db91feb9c902d72a545
BLAKE2b-256 checksum
How to use checksums
e4cb059b55da710bca9b884a84162d4ebbf33482043d6619a2e0bfea7895cc49
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 24, 2026.

Transparency log

Security for audible 0.13.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for audible-0.13.1.tar.gz

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 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.13.1 This release

2 release files Full provenance

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