Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:aax2mp3_neu
Übersetzungen dieser Seite:

Dies ist eine alte Version des Dokuments!


Hörbücher ins MP3 Format bringen (ein eigener Weg)

Es ist soweit, ich habe mich entschieden den Aufwand für die Audible Konvertierung zu minimieren. Da ich schon seit längerem Pathon lernen wollte, habe ich mich entschlossen dies mit Python zu implementieren.

Ich will hier beschreiben, wie das Audible Format nach MP3 konvertiert werden kann und wie ich dies implementiert habe.

Eines vorweg: Ich bescheibe keinen Weg Audio Books von DRM Beschränkungen zu befreien, sondern nur wie man selbst gekaufte Audible Inhalt ins MP3 Format bringt, um sie auf Geräten zu nutzen, die das AAX Format nicht unterstützen.

Seit Juli 2015 unterstützt das freiverfügbare Utiliy ffmpeg das Dekodieren von AAX. Der passende Parameter lautet „-activation_bytes xxxxxxxx“. Dies funktioniert problemlos, sobald man den Wert für xxxxxxxx ermittelt hat, dazu aber später. ffmpeg zu benutzen ist allerdings eine Wissenschaft für sich 8-) .

Ich bin faul, wollte also eine möglichst elegante Methode entwickeln mit einem Doppelklick alles zu erledigen. Audible Dateien können mit den verschiedensten Programmen zusammenarbeiten, hier musste ich die richtige Wahl treffen. Zur Auswahl stehen:

  • Der Audible Manager - einstmals gedacht um am Laptop die Titel anzuhören
  • Itunes - wird benötigt um .aax Files auf dem Iphone oder den, damals noch hergestellten Ipods, anzuhören
  • Audible App - Der letzte Schrei, eine App um auf dem Handy oder dem PC, ohne Software von Drittanbietern, den Geschichten zu lauschen

Bei Itunes habe ich keine Möglichkeit gefunden, an die sogenannten Activation Bytes zu kommen, also habe ich ein wenig recherchieren müssen. Das Ergebnis is erschrecken simpel, Security by Obscurity war wohl der Vater des Gedanken, ihr werdet es gleich verstehen. Hier fasse ich die Ergebnisse mal zusammen:

  • Audible Manager - schreibt die Activation Bytes in die Windows Registry
    • „reg query HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Audible\SWGIDMAP“ zeigt die Activation Bytes an.
    • sollte seinen PC mehrfach aktiviert haben, ist der erste Wert der korrekte
    • Hier mal ein Beispiel Output
        0    REG_BINARY    0281B17D000000000001...9
        1    REG_BINARY    0281B17D000100000001...2
        2    REG_BINARY    02B674C9000200000001...C
        3    REG_BINARY    08BB5D48000300000001...9
        4    REG_BINARY    02B18034000400000001...D
        5    REG_BINARY    02695123000500000001...2
        6    REG_BINARY    0514B078000600000001...4
        7    REG_BINARY    08A11AF5000700000001...3
  • Audible App - Die Activation Bytes stehen in der Datei „AudibleActivation.sys“ das ihr im Installationsverzeichnis (%appdata%\..\local\Packages\audibleinc.audibleforwindows*\LocalState\) findet
    • Öffnet die Datei mit einen Hex-Editor Eurer Wahl und nehmt die ersten 4 Byte in Hex (also 8 Zeichen)
    • Solltet ihr Cygwin haben reicht folgender, zugegebenermaßen kryptische, Befehl:
hexdump "/cygdrive/c/Users/$USER/AppData/Local/Packages/AudibleInc.AudibleforWindows*/LocalState/AudibleActivation.sys" | head -n 1 | sed -r 's/^.{8}(.{4}) (.{4}).*/\2\1/'
  • Ein weiteres Utility ist rcrack (alle Dateien), das aber zusätlich sogenannte Rainbow Tables benutzt, die ihr bei OpenAudible (die 4 .rt Dateien) erhaltet.
    • Ladet von rcrack alle Dateien herunter und schiebt sie in ein leeres Verzeichnis Eurer Wahl.
    • legt ein Unterverzeichnis „tables“ darin an und ladet die 4 .rt Dateien von OpenAudible dorthin herunter.
    • ffprobe wird nun benötigt, um die Checksumme einer Eurer .aax Dateien zu ermitteln.
"ffprobe <filename.aax>"
  • Der Output sieht dann so aus (nur der Anfang)
ffprobe version git-2020-03-24-e5d25d1 Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20200122
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 42.101 / 56. 42.101
  libavcodec     58. 76.100 / 58. 76.100
  libavformat    58. 42.100 / 58. 42.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 77.100 /  7. 77.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001fa241cda00] [aax] file __**checksum == 1dd2575473028f207648bbad70c2a263f2142847**__
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001fa241cda00] [aax] activation_bytes option is missing!
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001fa241cda00] stream 0, timescale not set
[aac @ 000001fa241dfd40] Multiple frames in a packet.
[aac @ 000001fa241dfd40] Prediction is not allowed in AAC-LC.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\morqu\Audible\Downloads\converted\Erschüttert - Teil 1_B073WV2QXW_LC_64_44100_Stereo.aax':
  Metadata:
    major_brand     : aax
    minor_version   : 1
    compatible_brands: aax M4B mp42isom
    creation_time   : 2020-03-27T13:25:00.000000Z
    comment         : Section 82
  • Interessant ist nur die Checksumme
checksum == 1dd2575473028f207648bbad70c2a263f2142847
  • Nun noch rcrack aufrufen und di Activation Bytes werden angezeigt:
rcrack.exe . -h 1dd2575473028f207648bbad70c2a263f2142847
  • die letzte Zeile zeigt die Activation Bytes (hex:xxxxxxxx)
result
----------------------------------------------------------------
1dd2575473028f207648bbad70c2a263f2142847  }\xb1\x91\x01  hex:7db19101
  • bis hierhin

Aus thermischen Gründen, im Winter ist es zu kalt um meine E-Book Reader in der Hand zu halten und im Sommer zu Warm für Kopfhörer, habe ich mich für Hörbücher entschieden. Ein Abo bei Audible (Amazon) liefert mir jeden Monat ein Guthaben für ein beliebiges Hörbuch. Auf meinem Ipod (ja, ich habe noch einen) kann ich diese wunderbar genießen. Dumm ist, das Apple den Ipod als kleines tragbares „Hörgerät“ eingestellt hat und die Liste der mit dem Audible Kopierschutz zurechtkommenden Player begrenzt ist. Um also meine Hörbücher in Zukunft hören zu können wandele ich sie ins MP3 Format um. Die Audible App für SmartPhones hat nämlich den Nachteil das der Akku desselben zu schnell leer wird.
Zwei komfortable Lösungen habe ich gefunden, einmal über die Brennfunktion von Itunes, einmal durch das Programm AAX2MP3 in der aktuellen Version (der Downloadlink versteckt sich im Ticket Nummer 16).

AAX2MP3 „knackt“ nicht den Kopierschutz sondern nutzt den Audible Manager, der für das Abspielen auf dem PC aktiviert sein muss. Es können also ausschließlich selbst gekauft Hörbücher bearbeitet werden. Es ist also eine weitere Software erforderlich, der Audible Manager. Auch die Variante über Itunes das Hörbuch auf CD zu brennen und danach wieder ins MP3 Format zu konvertieren, erweist sich als wenig praktisch. Ich setze hier auf die Software Virtual CD (Preis 30€ und 15€ für ein Upgrade) und ihre Funktion ein „Brennen“ ins MP3 Format zu bieten. Beide Varianten werde ich beschreiben.

MP3's "Brennen" über Virtual CD

Ich gehe mal davon aus, das Itunes installiert und Virtual CD bereits installiert sind. In den Einstellungen von Virtual CD wird ein virtueller Brenner definiert, den man in Itunes nutzen kann. Bisher habe ich auch die Erfahrung gemacht, das Virtual CD nach den funktionalen Windows 10 Updates (etwa vierteljährig) nicht mehr sauber funktioniert und eine De- und anschließende Neuinstallation erforderlich ist.
Als erstes müssen wir den virtuellen Brenner mit einem virtuellen Rohling versorgen. Dazu rechtsklickt man auf das Virtual CD Icon in der Taskleiste, fährt mit der Maus auf den virtuellen Brenner, klickt dann auf virtuellen Rohling einlegen und wählt „Musikdateimodus“. Hier mal ein Screenshot dazu:

In Itunes importiert man nun das Hörbuch und authorisiert seinen Audible Account indem man einfach versucht das Hörbuch abzuspielen. Nun legt man eine Wiedergabeliste an, die dieses Hörbuch enthält. Ein Rechtsklick auf die Wiedergabeliste bietet den Punkt „Playlist auf Medium brennen“ an. Einfach den virtuellen Brenner auswählen, CD Text aktivieren und schon kann gebrannt werden. Da Itunes ein Hörbuch dabei in Häppchen von ca. 7 Minuten zerlegt, bekommen wir nach Abschluss des Brennes eine Anzahl von MP3 im Ausgabeverzeichnis des Brenners (normalerweise „C:\Users\Public\Music\“) geliefert. Voila, das Hörbuch liegt nun im MP3 Format vor und kann auf beliebigen Abspielgeräten genutzt werden.

MP3's mit AAX2MP3 erstellen

Ich muss das Rad ja nicht komplett neu erfinden, daher habe ich folgendes How-To als Vorlage genommen.

Folgende Bemerkungen habe ich dazu:

  • Nach dem Download des ersten Hörbuchs sollte man dieses einmalig für ein paar Sekunden im Audible Manager anspielen
  • Im Folgenden braucht der Audible Manager nicht wieder gestartet zu werden, AAX2MP3 findet den Entschlüsselungskey auch so.
  • Der Download Link ist veraltet, besser ist es (die Version aus Ticket 16 zu benutzen. In dieser Version wird das Hörbuch exakt an den Kapitelmarkierungen aufgeteilt, was sehr viel besser ist als die Aufteilung nach Minuten.
howtos/aax2mp3_neu.1585566819.txt.gz · Zuletzt geändert: 2020/03/30 11:13 von morquai