Audible aax-Dateien in mp3 umwandeln unter Linux

Audible aax nach mp3 umwandeln unter LinuxBisher ging ich immer davon aus, dass wenn ich Musik oder Hörspiele bei Amazon zum Download kaufe, auch mp3-Dateien zum Download bekomme. Weit gefehlt – gestern kaufte ich mal wieder ein Hörspiel und musste feststellen, dass ich nach dem Kauf zu Audible weitergeleitet wurde und das Hörspiel dort im “geschützten” aax-Format zum Download angeboten bekam. Hätte ich bei Audible kaufen wollen, wäre ich zu Audible gegangen. Danke für nichts, Amazon!

Doch nun stellt sich die Frage: “Wie bekomme ich aus den proprietären aax-Dateien wieder mp3’s, die ich überall abspielen kann?” Denn schließlich war beim Kauf auf Amazon nirgends die Rede davon, dass das gekaufte Hörspiel nur auf Geräten gehört werden kann, für die es auch einen Audible-Player gibt. Für Windows-Nutzer gibt es bereits einfache Tools wie aax2mp3, die die Umwandlung übernehmen. Als Linux-Nutzer muss man etwas tiefer in die Trickkiste greifen…

aax zu mp3 umwandlen unter Linux

Um die proprietären Audible aax-Dateien in “offene” mp3-Dateien umzuwandeln benötigen wir zwei kostenlose Scripte, die beide auf Github zu Verfügung stehen. Zum einen AAXtoMP3 von KrumpetPirate, welches die eigentliche Konvertierung vornimmt und zum anderen den audible-activator von inAudible-NG, der den Schlüssel, der zur Konvertierung benötigt wird, bereitstellt. Da AAXtoMP3 von diesem Schlüssel abhängig ist, beginnen wir also mit dem audible-activator. Folgendes Tutorial findet ausschließlich in der Konsole/Shell statt.

Vorbereitungen
Damit die folgende Anleitung klappt solltet ihr sowohl den Chrome-Browser als auch ffmpeg installiert haben. Ist dies nicht der Fall könnt ihr den Chrome-Browser hier herunterladen.
FFMpeg könnt ihr mit folgendem Befehl installieren:

apt-get install ffmpeg

Im ersten Schritt legt ihr ein Verzeichnis an in welchem ihr die Tools speichern wollt, ladet den audible-activator herunter, entpackt diesen und navigiert in das audible-activator-Verzeichnis. (Jede Zeile ist ein Befehl und sollte eingegeben werden, nachdem der vorherige Befehl ausgeführt wurde.)


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

Im nächsten Schritt müssen wir den audible-activator noch lauffähig machen. Hierzu müssen wir per Python-Paketmanager noch das “selenium” und das “requests” Paket sowie per Download den Selenium Chromedriver nachladen und das Script ausführbar machen.


sudo pip install requests
sudo pip install selenium
wget https://chromedriver.storage.googleapis.com/2.35/chromedriver_linux64.zip
unzip chromedriver_linux64.zip

Solltet ihr keine 64-bit Variante von Linux nutzen, müsst ihr ggf. einen anderen Chromedriver laden. Die Liste der aktuellen Chromedriver findet ihr hier. (Solltet ihr auf eurem Rechner noch nicht den Google Chrome Browser installiert haben, so müsstet ihr dies nun auch noch nachholen, da der audible-activator ein Python-Script ist, welches den Chrome-Browser automatisiert.)

Nun, da das Setup der audible-activators abgeschlossen ist, kann dieser ausgeführt werden. Hierzu reicht folgender Aufruf:


./audible-activator.py -l de

Solltet ihr einen US-Account haben, müsstet ihr das “de” in dem Aufruf durch “us” ersetzen. Das Script fragt nach dem Start nach “Username” und “Passwort”. Hier müsst ihr euren Audible-Nutzernamen und euer Passwort angeben. Wenn ihr, wie ich, Audible-Kunde geworden seit, weil ihr einen Download auf Amazon gekauft habt, so müsst ihr eure Amazon-Daten eingeben. Danach öffnet das Script den Chrome-Browser, lädt ein paar Seiten und zeigt euch am Ende in der Konsole euren Authcode.


raffael@nbb-kubuntu:~/Tools/aax2mp3tools/audible-activator-master$ ./audible-activator.py -l de
Username: <secret>@googlemail.com
Password: <secret>
[*] Player ID is 2jmj7lXXXXXXXkK/YBwk=
activation_bytes: d8cfXXXX

Ich habe meine Ausgabe etwas anonymisiert, jedoch entspricht die letzte Zeile dem besagten Authcode. Diesen benötigt ihr für die Umwandlung der aax-Datei bzw. für den Aufruf des aax2mp3-Scripts, welchem wir uns nun widmen.

Da wir nun den Authcode haben, navigieren wir wieder in unser Tools-Verzeichnis, laden das aax2mp3-Script herunter und entpacken es.


cd ..
wget https://github.com/KrumpetPirate/AAXtoMP3/archive/master.zip
unzip master.zip
rm master.zip
cd AAXtoMP3-master

Nun können wir die Umwandlung vom aax-Format ins mp3-Format starten. Dazu reicht folgender Aufruf:


./AAXtoMP3 <authcode> <aax-file>

Das Token <authcode> ersetzt ihr durch den Authcode (“activation_bytes”), den wir soeben per audible-activator ausgelesen haben. Das Token <aax-file> muss durch den Pfad zur aax-Datei ersetzt werden. Den Rest erledigt das Tool. Nach Ausführung des Scripts sollte sich nun im selben Verzeichnis wie die aax-Dateien auch die jeweiligen mp3-Versionen finden.

38 Kommentare

  1. Ich bekomme den Fehler:
    Traceback (most recent call last):
    File “audible-activator.py”, line 202, in
    fetch_activation_bytes(username, password, options)
    File “audible-activator.py”, line 102, in fetch_activation_bytes
    search_box = driver.find_element_by_id(‘ap_email’)
    AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’

    In dem File audible-activator.py muss man etwas ändern:

    Das Problem ist, dass der Befehl find_element_by_id(“Suchtext) in find_element(“id”, “Suchtext”) geändert wurde.
    Also so:
    search_box = driver.find_element(‘id’, ‘ap_email’)
    search_box.send_keys(username)
    search_box = driver.find_element(‘id’, ‘ap_password’)
    search_box.send_keys(password)
    search_box.submit()

    Auch muss man die Anmelde URL ändern. Ich habe eine Lösung die funktioniert, aber nicht sonderlich elegant ist. Auf audible.de gehen und rechtsklick auf anmelden und diesen Link kopieren (Sehr lange URL)
    Dies dann in dem File eintragen:

    # Step 1
    login_url = “https://www.amazon.de/ap/signin?clientContext=XXXXXXX usw. usw.”

    Der Rest unter Step 1 kann dann weg bis ausschließlich “if PY3:”

    Leider wurden auch die Cookies scheinbar angepasst und nun kommt folgender Fehler:
    Traceback (most recent call last):
    File “audible-activator.py”, line 193, in
    fetch_activation_bytes(username, password, options)
    File “audible-activator.py”, line 128, in fetch_activation_bytes
    + ‘customer_token=’ + data[“playerToken”] + “&action=de-register”
    KeyError: ‘playerToken’

    Ich vermute, hier ist das Problem eine neue Cookie Struktur. Hier habe ich noch keine Lösung.

    (Info am Rande: Man muss unbedingt darauf achten, dass man die passenden Treiber für die Chrome-Version hat.)

Schreibe einen Kommentar zu Roland küng Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.