AudibleApi 9.1.0.1

dotnet add package AudibleApi --version 9.1.0.1
NuGet\Install-Package AudibleApi -Version 9.1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AudibleApi" Version="9.1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add AudibleApi --version 9.1.0.1
#r "nuget: AudibleApi, 9.1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install AudibleApi as a Cake Addin
#addin nuget:?package=AudibleApi&version=9.1.0.1

// Install AudibleApi as a Cake Tool
#tool nuget:?package=AudibleApi&version=9.1.0.1

AudibleApi

Audible API in C#

Implementation of an Audible API in C#. Aside from the goal of having this be pure C#, the focus on this project was to have it

  1. fully integratable into other software
  2. fully testable and tested

If you found this useful, tell a friend. If you found this REALLY useful, you can click here to PayPal.me

...or just tell more friends. As long as I'm maintaining this software, it will remain free and open source.

Thanks to these other Audible APIs which I used for reference and whose authors were very responsive and helpful with questions:

https://github.com/omarroth/audible.cr -- Crystal interface for Audible's internal API
https://github.com/mkb79/Audible -- Python interface for Audible's internal API

The main functionality of this API is typically kept very up to date. It is the backbone of my popular-ish audible library manager Libation. Although some tests and demo code are probably outdated by now, I'm happy to answer questions though in the issues page.

Getting started

Anything you do will start with a call to AudibleApi.EzApiCreator.GetApiAsync. This async method will return an instance of the api object which you will use for everything else. When login info is needed, it will be processed by the ILoginCallback class you specify.

AudibleApiClientExample provides some quick and dirty examples. It's what I use for quick tests so there are scraps of examples throughout.

AudibleApiClientExample.LoginCallback provides a proof of concept for a command line callback class.

AudibleApiClientExample.AudibleApiClient shows how to create the api object which is then used in _Main.run

response_groups

Since the API is undocumented, it can at times be difficult to tell how to use it. The links above have some good findings. I've found "response_groups" particularly difficult to figure out. To be safe, you can just include them all. All info below is based on analysis of using these response_groups on a library of 700+ titles.

GET /1.0/library , GET /1.0/library/{asin}

Included in all groups: asin, purchase_date, sku_lite, status

Additional fields:

  • Default/no response_groups provided: authors, available_codecs, category_ladders, content_delivery_type, content_type, format_type, has_children, is_adult_product, is_listenable, issue_date, language, merchandising_summary, narrators, product_images, publisher_name, release_date, runtime_length_min, subtitle, thesaurus_subject_keywords, title, pdf_link, pdf_url, publication_name, content_rating
  • badge_types: origin_id, origin_marketplace, origin_type
  • category_ladders: category_ladders
  • contributors: authors, narrators, publisher_name
  • is_downloaded, is_downloaded
  • is_returnable: available_codecs, content_delivery_type, content_type, format_type, has_children, is_adult_product, is_listenable, is_returnable, issue_date, language, merchandising_summary, origin_id, origin_marketplace, origin_type, release_date, runtime_length_min, thesaurus_subject_keywords, publication_name, content_rating
  • media: product_images
  • origin_asin: origin_asin, origin_id, origin_marketplace, origin_type
  • pdf_url: pdf_link, pdf_url. (The value of pdf_link and pdf_url seems to always be identical)
  • percent_complete: available_codecs, content_delivery_type, content_type, format_type, has_children, is_adult_product, is_listenable, issue_date, language, merchandising_summary, origin_asin, origin_id, origin_marketplace, origin_type, percent_complete, release_date, runtime_length_min, thesaurus_subject_keywords, publication_name, content_rating
  • price: price
  • product_attrs: available_codecs, content_delivery_type, content_type, format_type, has_children, is_adult_product, is_listenable, issue_date, language, merchandising_summary, release_date, runtime_length_min, thesaurus_subject_keywords, publication_name, content_rating
  • product_desc: subtitle, title
  • product_extended_attrs: publisher_summary, editorial_reviews, audible_editors_summary
  • product_plans: plans
  • rating: rating
  • relationships: relationships
  • reviews: customer_reviews
  • sample: sample_url
  • series: series
  • sku: sku

Strange response_groups:

  • provided_review: provided_review. However, provides no results unless used with "rating"
  • I can find no combination which gives these response_groups do anything meaningful: claim_code_url, product_plan_details, review_attrs
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on AudibleApi:

Repository Stars
rmcrackan/Libation
Libation: Liberate your Library
Version Downloads Last updated
9.1.0.1 968 3/4/2024
9.0.2.1 244 1/19/2024
9.0.1.1 94 1/19/2024
9.0.0.1 445 11/15/2023
8.5.0.1 224 10/19/2023
8.4.3.1 2,328 7/22/2023
8.4.2.1 646 7/15/2023
8.4.1.1 2,889 5/19/2023
8.4.0.1 509 4/18/2023
8.3.0.1 277 4/15/2023
8.2.3.1 1,794 3/26/2023
8.2.2.1 449 3/15/2023
8.2.1.1 230 3/15/2023
8.2.0.1 276 3/14/2023
8.1.0.1 1,338 2/27/2023
8.0.0.1 351 2/24/2023
7.3.3.1 1,325 2/14/2023
7.3.2.1 1,626 1/25/2023
7.3.1.1 1,208 1/6/2023
7.3.0.1 289 1/5/2023
7.2.0.1 464 12/30/2022
7.1.0.1 595 12/15/2022
7.0.0.5 721 12/7/2022
7.0.0.4 503 11/17/2022
7.0.0.3 313 11/16/2022
7.0.0.2 322 11/16/2022
7.0.0.1 319 11/16/2022
4.6.6.1 579 11/2/2022
4.6.5.1 386 10/18/2022
4.6.4.1 404 9/9/2022
4.6.3.1 421 8/3/2022
4.6.2.1 413 8/2/2022
4.6.1.1 399 8/2/2022
4.6.0.1 415 7/31/2022
4.5.0.1 450 7/19/2022
4.4.0.1 404 7/19/2022
4.3.1.1 434 6/26/2022
4.3.0.1 421 6/26/2022
4.2.2.1 472 6/24/2022
4.2.1.1 437 6/23/2022
4.1.1.1 459 6/23/2022
4.1.0.1 461 6/21/2022
4.0.0.1 429 6/15/2022
3.1.0.1 454 6/8/2022
3.0.2.1 466 5/26/2022
3.0.1.1 439 5/26/2022
2.8.4.1 459 5/24/2022
2.8.3.1 447 5/17/2022
2.8.2.1 434 5/16/2022
2.8.1.1 434 5/10/2022
2.8.0.1 439 5/10/2022
2.7.6.1 447 5/9/2022
2.7.5.1 436 5/8/2022
2.7.4.1 401 5/7/2022
2.7.3.1 462 4/29/2022
2.7.2.1 473 3/17/2022
2.7.1.1 438 3/17/2022
2.7.0.1 450 3/6/2022
2.6.2.1 456 3/3/2022
2.6.1.1 323 1/4/2022
2.5.1.1 329 12/6/2021
2.5.0.1 635 12/6/2021
2.4.0.1 4,728 11/24/2021
2.3.6.1 4,958 11/23/2021
2.3.5.1 340 11/11/2021
2.3.4.1 329 11/4/2021
2.3.3.1 315 11/3/2021
2.3.2.1 336 10/26/2021
2.3.1.1 393 10/14/2021
2.3.0.1 325 10/12/2021
2.2.1.1 330 10/12/2021
2.2.0.1 372 9/23/2021
2.1.3.1 350 9/22/2021
2.1.2.1 356 9/22/2021
2.1.1.1 357 9/20/2021
2.0.1.1 350 9/17/2021
2.0.0.1 351 9/17/2021
1.2.1.2 351 9/7/2021
1.2.1.1 336 9/7/2021
1.2.0.1 397 9/4/2021
1.1.5.1 362 9/3/2021
1.1.1.1 332 9/2/2021
1.1.1 341 9/1/2021
1.1.0.2 333 9/1/2021
1.1.0.1 357 8/31/2021
1.0.6.2 371 8/27/2021
1.0.6.1 345 8/26/2021
1.0.6 338 8/26/2021
1.0.5.1 335 8/25/2021
1.0.5 352 8/25/2021
1.0.4 355 8/25/2021
1.0.2 382 8/25/2021