Converting Audible books
Disclaimer: I did not create the software referenced here, and I link to the original authors of the projects (to whom I am grateful) throughout. Also, this is intended purely for removing the DRM on books that you have purchased for your own personal use, which I do so that I may access my books on a portable device while running.
This is a very succinct guide on converting Audible’s proprietary .aax DRM audiobook format (for books that you have purchased) into .m4b and other standard formats playable on most any device.
Supposedly, it is possible to use a file from an authorized Audible device (e.g. an Android device with the Audible app) to extract one’s Audible authorization code, which appears to be unique to an Audible account. However, I could not easily retrieve this file, so I attempted to extract the code using the audible-activator tool. This proved problematic on my setup as it appeared to require installing Google Chrome and it was unclear whether it would work with 2FA on my Audible/Amazon account.
Therefore, I decided to go about it another way and used a RainbowCrack-based plugin designed to crack the authorization code using the file’s hash, which was far more seamless than I expected.
If you already have the authorization code for your account, you may skip steps 1-3.
Step 0: Download the
You can do this for books you have purchased after logging in to your Audible account on a desktop web browser.
Step 1: Find the file’s hash
$ ffprobe <your .aax file>
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55a24fe4cf40] [aax] file checksum == 999a6ab80443094b028aaf3882af0a13f177dada
Step 2: Download or clone the
tables project from https://github.com/inAudible-NG/tables
Step 3: Extract your authorization code
In the project’s directory, run
rcrack from the aforementioned project to crack the authorization code for your account.
$ ./rcrack . -h <your hash here>
After a while, you will see a result that lists a code such as
Step 4: Download AAXtoMP3
It is possible to do this using
ffmpeg without additional downloads, but I found it easier to use the AAXtoMP3 tool which facilitates a variety of options such as automatically splitting output files by chapter. Download the Bash script titled
AAXtoMP3 from the project’s repository: https://github.com/KrumpetPirate/AAXtoMP3
Step 5: Convert the file
Basic use to generate standard
.mp3 audio files involves running, from the directory where you downloaded the script:
$ ./AAXtoMP3 -A <your hex auth code> <your .aax file>
Or to generate multiple output files split by chapter in
$ ./AAXtoMP3 -A <your hex auth code> --aac -e:m4a -e:m4b --c <your .aax file>
You may now play these files on nearly any application or device that supports audio playback, such as VLC (or my outdoor watch). Enjoy!