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. Im Prinzip hat die Installation von audible-activator-master geklappt, dann brach aber alles ab, indem eine sehr langer html-Code gezeigt wurde mit der letzten Zeile Activation failed! ;(
    Etwas davor hieß es “DEAmazon”,\n\ttm_existing_member:”true”,\n\tmembership_status:”Cancelled”
    Bedeutet das etwa, dass ich aktives Audible-Mitglied sei muss? Ich kann mich immer noch bei Audible anmelden und sogar meine erworbenen Audio-Books herunterladen. MMMhhh ….

  2. blasiussays:

    Ich habe folgenden Fehler:

    ./AAXtoMP3 key
    bash: Syntaxfehler beim unerwarteten Wort `newline’

  3. Marcosays:

    Thanks man! I owe you one – Next beer is on me!

  4. Peter Gotthardtsays:

    Habe leider folgende Fehlermeldung:

    File “./audible-activator.py”, line 10, in
    import requests
    ImportError: No module named requests

    Könnte mir bitte jemand mitteilen was ich da falsch gemacht habe? Vielen Dank

    • Oliversays:

      Wahrscheinlich benutzt die Datei python2. PIP ist aber für python installiert. Du musst es also für version 2 auch installieren.

      curl https://bootstrap.pypa.io/get-pip.py –output get-pip.py
      sudo python2 get-pip.py

      pip2 install requests
      pip2 install selenium

      dann nochmals versuchen:
      ./audible-activator.py -l de

  5. Roland küngsays:

    Hallo,
    Hat doch noch funktioniert, Reihenfolge der Abarbeitung und die richtige Version und Speicherort des chromedrivers haben der Erfolg gebracht

  6. Roland Küngsays:

    Hallo, .
    Mein System lubuntu 18.04
    Habe die Anleitung befolgt, bekomme nach ./audible-activator.py -l de
    immer folgende Fehlermeldung:
    ##############################
    Username: roland.kueng@gmx.at
    Password:
    [*] Player ID is 2jmj7l5rSw0yVb/vlWAYkK/YBwk=
    Traceback (most recent call last):
    File “./audible-activator.py”, line 179, in
    fetch_activation_bytes(username, password, options)
    File “./audible-activator.py”, line 79, in fetch_activation_bytes
    executable_path=chromedriver_path)
    File “/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py”, line 81, in __init__
    desired_capabilities=desired_capabilities)
    File “/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”, line 157, in __init__
    self.start_session(capabilities, browser_profile)
    File “/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”, line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
    File “/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”, line 321, in execute
    self.error_handler.check_response(response)
    File “/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py”, line 242, in check_response
    raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
    (unknown error: DevToolsActivePort file doesn’t exist)
    (The process started from chrome location /usr/lib/chromium-browser/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
    ############################################

    Irgendeine Idee, was falsch läuft ??

  7. Hallo,
    der audible-activator hat bei mir vor längerer Zeit wunderbar funktioniert.
    Aber heute wird chromium, Kubuntu 18.04, aufgerufen, Zugangsdaten eingetragen, soweit alles gut.
    Dann kommt aber von Audible eine Sicherheitsabfrage, wo ich eine Zeichenfolge eingeben soll. Das Script macht aber weiter und bricht dann mit Fehler ab:
    KeyError: ‘playerToken’

    Gibt es da eine Lösung?
    Danke für eine Antwort.

  8. Olafsays:

    Weiß jemand ob das Auslesen meines activation_bytes bei Audible rechtlich zulässig ist, wenn ich in die aac in mp umwandeln will. Mit meinen Windows funktioniert das Abspielen nicht. Und immer bei Audible angemeldet zu sein um Online zu streamen führt bei mir zu zu hohen Traffic und Internetgebühren.

  9. super – läuft, danke

  10. Ich hatte viele Fehlermeldungen weil ich audible-activator.py als root gestartet hatte -> Chrome startet dann nicht! Ausserdem habe ich in der o.g. Datei den Pfad zum chromedriver angepasst: /usr/bin/chromedriver

  11. Der letzte Aufruf zur Umwandlung stimmt nicht ganz. Da fehlt eine Option.
    Hier auf der Seite steht:
    ./AAXtoMP3 blablacode /path/filename.aax
    richtig ist aber:
    ./AAXtoMP3 –authcode blablacode /path/filename.aax

  12. Ellisays:

    Hallo!

    ich nochmal. Der audible-activator erkennt irgendwie mein Passwort nicht. ich hab den debug-mode probiert.

    code:

    File “./audible-activator.py”, line 172, in
    fetch_activation_bytes(username, password, options)
    File “./audible-activator.py”, line 107, in fetch_activation_bytes
    + ‘customer_token=’ + data[“playerToken”] + “&action=de-register”
    KeyError: ‘playerToken’

    Danke für Hilfe:

  13. ellisays:

    Hallo,

    ich bekomme eine Fehlermeldung, wenn ich den audible-activator ausführen will.

    code:
    me@PC-me:~/audible-activator-master$ ./audible-activator.py -l de
    Traceback (most recent call last):
    File “./audible-activator.py”, line 10, in
    import requests
    ImportError: No module named requests

    requests ist aber in “/usr/lib/python3/dist-packages “, also vorhanden

    Weißt du, was da los ist und wie ich das lösen kann?

    Dankö

    • niennasays:

      Hallo Elli,

      bei mir war es exakt die gleiche Fehlermeldung, obwohl
      >pip install requests
      problemlos durchlief:
      Successfully installed certifi-2018.11.29 chardet-3.0.4 idna-2.8 requests-2.21.0 urllib3-1.24.1
      Da hab ich mich auch ziemlich gewundert und die ganze Sucherei ging los…

      Naja, lange Rede, kurzer Sinn: Mach mal das Script selber auf, da findest du in der ersten Zeile, dass das ganze python2 benutzt. Ändere die 2 in eine 3 und das war’s.

  14. FrankRsays:

    Hallo, zunächst mal vielen Dank für das Tut…
    Aber bei mir funktioniert leider die Konvertierung nicht – ich bekomme immer die Meldung, dass der Authcode fehlen würde

    ./AAXtoMP3 => ERROR Missing authcode…

    Egal, was ich versuche, immer wieder das Gleiche.

    Danke für eine Hile/Info dazu…

    • Jonassays:

      Did you use -A as Attribute.

      Write it like that:
      ./AAXtoMP3 -A 2U3IK9J9 aaxdatei.aax

      • JonasQuinnsays:

        Hey, a big Thank you!!! That was the missing part. Now it works for me
        Thank you

  15. Ich bekomme diese Fehlermeldung

    Traceback (most recent call last):
    File “./audible-activator.py”, line 172, in
    fetch_activation_bytes(username, password, options)
    File “./audible-activator.py”, line 115, in fetch_activation_bytes
    with open(“activation.blob”, “wb”) as f:
    IOError: [Errno 13] Permission denied: ‘activation.blob’

  16. Markussays:

    Hast du mal darüber nachgedacht, dass MP3 vielleicht einfach kein ideales Format für gesprochene Inhalte ist und überhaupt inzwischen überholt? Ich finde zwar auch, dass Audible seine Hörbücher gerne ohne DRM anbieten darf. Auf ein Format zu setzen, dass bei besserer Qualität eine kleine Dateigröße bietet ist aber nicht zu beanstanden.

  17. Klappt super, vielen Dank!
    Gibt es auch die Möglichkeit, die Kapitel zu erhalten?

  18. Hanssays:

    der error ist:

    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1a61e00] Error setting option activation_bytes to value 5rSw0yVb/vlWAY.
    file.aax: Invalid argument

    mfG Hans

  19. Hanssays:

    Hallo,
    leider bekomme ich einen error:

    <>…

    scheint als op der Authcode nicht stimmt. Ideen?

    mit freundlichen Grüßen Hans

  20. Shlomo Roshsays:

    Nutze Linux-Mint 18.1, seit der Version 12.x davor andere Distros. Mit Mint hab ich alles was ich brauche.

    Habs dann mit “aax2mp3_easy” probiert, ähnliches Ergebnis. Hier der ganze Text:

    Eingabe:
    ./aax2mp3_easy.sh meine@email.com meinPassword TheFilterBubble.aax

    Ausgabe:
    Traceback (most recent call last):
    File “audible-activator-feature_login_as_arg/audible-activator.py”, line 148, in
    fetch_activation_bytes(username, password, options)
    File “audible-activator-feature_login_as_arg/audible-activator.py”, line 91, in fetch_activation_bytes
    + ‘customer_token=’ + data[“playerToken”] + “&action=de-register”
    KeyError: ‘playerToken’
    2017-09-17 21:49:22+0200 Decoding Player with auth code [*]…
    Mein@Zugang ~/.wine/drive_c/audible-mp3/aax2mp3-easy-master $

    ……………………………………………………………………………………………………………………
    Chromium-Fenster ging auf, alles klein Problem, aber ein Code gabs nicht.

    Habs im Wine-Ordner, da ist es bei mir etwas übersichtlicher.

  21. Shlomo Roshsays:

    Habs jetzt x-mal getestet, zuletzt auch nach update/upgrade des gesamten Systems, runter und wieder rauf gefahren, zeigt grundsätzlich in der Schlußzeile nach “./audible-activator.py -l de” immer an :
    KeyError: ‘playerToken’

    Hab mir schon vor langer Zeit ein J.k.rowling hörbuch gekauft und hab nichts davon.

    • Ich bin die Anleitung eben noch einmal Schritt-für-Schritt durchgegangen. Bei mir funktioniert es immer noch problemlos. Konntest du es am Ende auch zum Laufen bringen?

  22. Qaytersays:

    funktioniert bei mir leider nicht…
    2017-09-03 16:21:24+0200 Decoding xxxxxxxx with auth code 2jmjxxxxxxx/vlWAYkK/YBwk=…
    und.. das wars. keine anzeige, keine ausgabe. einzig ein ordner mit “hörbuch\autor\titel\” wird erstellt…

  23. Katrinsays:

    Funktioniert super, vielen Dank! Allerdings musste ich noch ffmpeg installieren bevor es geklappt hat.

  24. anonymoussays:

    ffmpeg kann es schon seit 2 jahren. wozu der aufwand?

  25. Alexandersays:

    Spitze, vielen Dank

Hinterlasse einen Kommentar

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