So far I always assumed that when I buy music or audiobooks on Amazon for download, I’ll get mp3 files for download. Far from it – yesterday I once again bought a an audiobook and had to find out that I was forwarded after the purchase to Audible and there was confronted with a “protected” aax file. If I wanted to buy at Audible, I would have gone to Audible. Thanks for nothing, Amazon!
But now the following question arises: “How do I convert the proprietary aax files into mp3’s, which I can play everywhere?” (aax files are only playable with the official Audible apps which aren’t available on all platforms.) After all, when buying on Amazon, there wasn’t the talk about the fact that the purchased audiobook can only be heard on devices for which there is also an Audible player. For Windows users, there are already simple tools like aax2mp3, which take over the conversion. As a Linux user, you have to reach deeply into the trickbox …
Convert aax-files to mp3-files
To convert the proprietary Audible aax files into “open” mp3 files, we need two free scripts, both available on Github. On the one hand we need AAXtoMP3 from KrumpetPirate, which carries out the actual conversion and on the other hand we need the audible-activator from inAudible-NG, which provides the authcode, which is needed for the conversion. Since AAXtoMP3 depends on this authcode, we start with the audible-activator. The following tutorial takes mainly place in the terminal/shell.
In the first step, you create a directory where you want to save the tools, download the audible-activator, unpack it and navigate to the audible-activator directory. (Each line is a command and should be entered after the previous command has been executed.)
mkdir aax2mp3tools cd aax2mp3tools wget https://github.com/inAudible-NG/audible-activator/archive/master.zip unzip master.zip rm master.zip cd audible-activator-master
The next step is to make the audible-activator still workable. To do this, we have to download the Selenium Chromedriver via the Python package manager and the “selenium” and the “requests” package.
pip install requests pip install selenium wget https://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip unzip chromedriver_linux64.zip
If you do not use a 64-bit variant of Linux, you may have to load another Chromedriver. The list of current Chromedrivers can be found here. (If you have not already installed the Google Chrome browser on your computer, you should do so now, because the audible-activator is a Python script that automates the Chrome browser.)
Now that the setup of the audible-activator is complete, it can be executed. The following call is enough:
./audible-activator.py -l de
If you have an US audible account, you should replace the “de” in the call with “us”. The script asks for “Username” and “Password”. Here you have to specify your Audible user name and your password. If you, like me, became an Audible customer because you bought a download on Amazon, you need to enter your Amazon credentials. Then the script opens the Chrome browser, loads a few pages and shows you your Authcode in the terminal.
raffael@nbb-kubuntu:~/Tools/aax2mp3tools/audible-activator-master$ ./audible-activator.py -l de Username: <secret>@googlemail.com Password: <secret> [*] Player ID is 2jmj7lXXXXXXXkK/YBwk= d8cfXXXX
I have anonymized my output, but the last line corresponds to the Auth code. This authcode is needed for the conversion of the aax-file or better said for the call of the aax2mp3-script.
Now that we have the authcode, we navigate back to our tools directory, download the aax2mp3 script and unpack it.
cd .. wget https://github.com/KrumpetPirate/AAXtoMP3/archive/master.zip unzip master.zip rm master.zip cd AAXtoMP3-master
Now we can start converting from aax format to mp3 format. To do so, run the following command:
./AAXtoMP3.sh <authcode> <aax-file>
The token <authcode> has to be replaced with the authcode, which we have just read via audible-activator. The token <aax-file> must be replaced by the path to the aax file. The rest is done by the tool. After executing the script, you should find the respective mp3 version of the aax-file in the same directory as the aax file.