Anleitung WhatsApp Chats als interaktive HTML-Dateien auf den PC auslagern mit dem WhatsApp-Chat-Exporter

Kreacher

Kreacher

Erfahrenes Mitglied
110
Hintergrund:

Sicher kennt ihr das: mit der Zeit sammeln sich haufenweise Chats in eurem WhatsApp-Client auf dem Smartphone an und so langsam verliert der ein oder andere vielleicht den Überblick. Man möchte einerseits vielleicht gerne mal die Chatliste ausmisten, andererseits aber auch keine Chats mit möglicherweise jahrelangen Erinnerungen löschen.

Ich möchte euch im Folgenden eine Möglichkeit zeigen, wie ihr eure Chats auf den PC auslagern könnt. Im Gegensatz zu der sehr primitiven eingebauten Funktion von WhatsApp namens "Chat exportieren", die nach meinem letzten Kenntnisstand lediglich eine *txt-Datei ohne Layout und Formatierung sowie ohne Medien und zudem auch noch beschränkt auf eine bestimmte maximale Anzahl an Nachrichten produziert, bietet die folgende Lösung die Möglichkeit, eure Chats in Gänze und in Form interaktiver HTML-Dateien (sprich, eure sämtlichen Medien sind anklickbar und abspielbar in der HTML-Datei integriert) auf den PC zu exportieren.

Sicherheitsrelevanter Hinweis: dieses Script arbeitet zu 100% offline und benötigt keine aktive Internetverbindung. Alle Vorgänge finden lokal auf eurem PC statt und es wird demnach auch sonst nichts im Hintergrund heimlich irgendwo hochgeladen oder weiterverbreitet. Es ist also zu 100% sicher.

1727285430811.png
1727285557353.png
1727285667278.png

Das unter MIT lizensierte Projekt befindet sich aktuell noch in der (Weiter)entwicklung, weshalb momentan die exportierten WhatsApp-Chats noch im Chat-Layout von Telegram daherkommen, da der Autor des Projekts sich zuallererst am Telegram-Layout orientiert hat. Auf meine Anregung bzw. Mitwirken hin wird aber künftig neben dem Telegram-Layout auch das altbekannte WhatsApp-Layout für die HTML-Dateien zur Auswahl stehen - entsprechende Code-Implementationen (mit Lizensierung für MIT) für HTML, CS und JS habe ich recherchiert und dem Autor zukommen lassen. Das künftige WhatsApp-Layout wird angelehnt sein am Layout von WhatsApp-Web.
Ich werde diesen Thread hier auf alle Fälle up-to-date halten bezüglich der neusten Layout-Implementationen.

Fun-Fact bzw. positiver Nebeneffekt: der WhatsApp-Chat-Exporter entschlüsselt zeitgleich auch eure verschlüsselte crypt15-Backup-Datei, sodass ihr damit einen unverschlüsselten Zugang zur WhatsApp-Datenbank habt - was je nach Anliegen und Vorhaben (z.B. das Zusammenführen verschiedener Chats oder auch ganzer Chat-Stände) ganz nützlich bzw. unumgänglich ist. Mehr dazu weiter unten.

Was ihr benötigt:
  • Python muss als Software installiert sein - gibt es kostenlos hier zum Downloaden.
  • Eine nicht-verschlüsselte WhatsApp-Datenbank in Form von einer "msgstore.db"-Datei. Der einfachste Weg wäre ein unter *crypt15 angelegtes WA-Backup zu nutzen und euren 64-stelligen Master-Key für die Entschlüsselung zu benutzen (Hintergründe und weiterführende Infos hier: Wie WhatsApp's Backup-Management funktioniert und warum ihr dringend die Ende-zu-Ende-Verschlüsselung (= crypt15) aktivieren solltet). Alternativ könnt ihr auch direkt die WhatsApp-Systemdatenbank nutzen, dafür benötigt ihr aber Root-Zugriff.
  • Falls Medien interaktiv mit eingebunden werden sollen: Euren WhatsApp-Medienordner (bzw. empfohlenswerterweise eine Kopie davon und nicht den originalen Ordner ausschneiden)

Anleitung:

1.) Ladet euch Python herunter und installiert es. WICHTIG: Bei der Installation muss der Haken bei "Add Python to Path" gesetzt sein, sonst funktioniert das Unterfangen später nicht:
1727281066453.png

2.) Ladet euch von der offiziellen Github-Seite dieses Projekts die Projektdateien unter diesem Link herunter (Download startet sofort), exportiert die heruntergeladene ZIP-Datei. Am besten auf den Desktop, das wird die Navigation zu diesem Ordner unter CMD / Eingabeaufforderung später erleichtern.

3.) Öffnet CMD / Eingabeaufforderung und navigiert zum Speicherort der in Schritt 2 extrahierten Zip-Dateien. Wenn sich die Dateien auf dem Desktop befinden, navigiert ihr in CMD also dorthin mit den folgenden Befehlen:

cd desktop [Enter-Taste drücken]

cd WhatsApp-Chat-Exporter-main [Enter-Taste drücken]

Nun solltet ihr euch mittels CMD innerhalb des extrahierten Projektordners befinden. Nun installiert ihr das Projekt mittels des folgenden Befehls:

Python:
pip install whatsapp-chat-exporter
[Enter-Taste drücken]

Nun ist das Projekt (fast) bereit für eure WhatsApp-Backup-Dateien. Die weiteren Schritte hängen nun davon ab, ob ihr eure crypt15-verschlüsselten Backup-Dateien nutzt, oder die nicht Backup-verschlüsselten crypt14-Dateien (für die ihr dann aber die Key-Datei aus dem Rootverzeichnis braucht), oder ob ihr direkt mit der unverschlüsselten WhatsApp-Systemdatenbank arbeitet (die ist aber auch nur mit Root-Rechten zugänglich).

4.) Chat-Export mittels crypt15-Backup-Dateien & dazugehörigem 64-stelligen Master-Key

Um crypt15-Backup-Support zu aktivieren, installieren wir zusätzlich noch pycryptodome sowie javaobj-py3:

Python:
pip install pycryptodome
[Enter-Taste drücken]

Python:
pip install javaobj-py3
[Enter-Taste drücken]

Nun erstellen wir noch das Endverzeichnis, in welches der Exporter die Chats exportieren soll und in welches auch die crypt15-Backup-Datei und der WhatsApp-Medienordner mit reinkommt, damit der Exporter arbeiten kann. Ich habe das Verzeichnis "Chatausgabe" genannt:

mkdir Chatausgabe [Enter-Taste drücken]

Jetzt sollte ein Ordner namens "Chatausgabe" im auf den Desktop extrahierten Verzeichnis liegen. Dort kopieren wir die crypt15-WhatsApp-Backup-Datei rein sowie bei Bedarf auch den Medienordner mit folgendem Pfad: WhatsApp/Media/:

1727282518011.png

Wer Zugang zur "encrypted_backup.key"-Datei hat (Root erforderlich, denn die liegt im WhatsApp-Systemordner unter "files"), der kann sich die mühselige Eingabe des 64-stelligen Keys ersparen. Wer diese Key-Datei nicht hat, muss leider seinen Master-Key eingeben, damit der Exporter die crypt15-Backup-Datei entschlüsseln kann.

Tipp: Wer möchte, dass seine exportierten HTML-Chats direkt schon mit den Namen der jeweils eingespeicherten Kontakte benannt werden, der kopiert zusätzlich zur msgstore.db.crypt15-Datei noch die im Ordner "Backup" sitzende "wa.db.crypt15"-Datei mit ins Ausgabeverzeichnis, denn diese Datei enthält eure gespeicherten Kontakte.

Mit dem Befehl


Python:
wtsexporter -a -k 432435053b5204b08e5c3823423399aa30ff061435ab89bc4e6713969cdaa5a8 -b msgstore.db.crypt15

beginnt der Chat-Exporter eure crypt15-Datei zu entschlüsseln und die Chats einzeln in Form einer HTML-Datei im definierten Ausgabeordner abzulegen. Wenn ihr den Medienordner mit ins Verzeichnis kopiert habt, dann werden auch alle eure Medien interaktiv in die jeweiligen Chat-HTML-Dateien mit integriert.

Die lange Ziffernfolge im Befehl repräsentiert dementsprechend euren 64-stelligen Master-Key, den ihr für euer WhatsApp-System unter crypt15 nutzt (nein, das ist nicht mein eigener 64-stelliger Key, sondern ein Beispiel. Ich verwende statt des Keys immer die encrypted_backup.key-Datei, die als Stellvertreter für den Key zählt).

Wer die "encrypted_backup.key"-Datei hat, erspart sich die Eingabe des langen Keys und gibt folgenden Befehl ein:


Python:
wtsexporter -a -k encrypted_backup.key -b msgstore.db.crypt15

Danach arbeitet und extrahiert der Exporter die Chats. Wenn er fertig ist, erscheint die Meldung "everything is done!".

Positiver Nebeneffekt: Der Chat-Exporter legt eine vollständig entschlüsselte Kopie der verschlüsselten msgstore.db.crypt15-Datei an, mit deren Hilfe er die Chats extrahiert. Ihr könnt mit dem Exporter damit zeitgleich auch eure verschlüsselte crypt15-Backup-Datei entschlüsseln und habt sie damit unverschlüsselt und frei-zugänglich als msgstore.db-Datei vorliegen, die ihr mit jedem SQLite-fähigen PC-Programm öffnen und anschauen bzw. bearbeiten könnt, z.B. falls ihr mal sehen wollt, wie die WhatsApp-Datenbank so aufgebaut ist oder Änderungen wie Backup-, oder Chat-Zusammenführungen vornehmen wollt.

5.) Chat-Export mittels crypt14-Backup-Datei & dazugehöriger Key-Datei


Wie oben schon (und sehr ausführlich im verlinkten Backup-Management-Thread) angesprochen, benötigt ihr für die Entschlüsselung von crypt14-Dateien die von WhatsApp generierte Schlüssel-Datei namens "key". Diese befindet sich aber im Root-Verzeichnis von WhatsApp, womit ihr demnach nur mittels Root Zugang habt. Wer Root hat, holt sich dort im Ordner "files" die "key"-Datei und platziert sie analog wie oben im Ausgabeordner neben der crypt14-Datei und (falls gewünscht) dem Medienordner.
Der Export-Befehl lautet hierfür dann:

Python:
wtsexporter -a -k key -b msgstore.db.crypt14

6.) Chat-Export mittels der unverschlüsselten WhatsApp-Systemdatenbank:

Wer wie ich Root hat für WhatsApp-Chatreparaturen und Datenbankanalysen, der hat direkt Zugriff auf die Haupt-Datenbank im WhatsApp-Root-Systemverzeichnis. Da diese standardmäßig immer unverschlüsselt ist, braucht demnach auch keine Entschlüsselung vorgenommen werden. Deshalb kopiert man einfach die unverschlüsselte msgstore.db samt der unverschlüsselten wa.db (für die Kontakte, falls gewünscht) in den Ausgabeordner und führt folgenden Befehl aus:

Python:
wtsexporter -a

Wenn alles fertig ist, befindet sich im Ausgabeordner neben der entschlüsselten msgstore.db nun auch ein Ordner namens "result", in welchem sich die extrahierten Chats als HTML-Dateien befinden sowie (notwendig für die Integration der Medien in die HTML-Dateien) auch eine Kopie des Medienordners.

Ein momentan noch etwas lästiges, aber hoffentlich künftig bald behobenes Problem ist, dass der Exporter nicht nur die aktiv-genutzten Chats exportiert, sondern sich an der JID-Tabelle der Datenbank orientiert (die enthält alle jemals mit WhatsApp in Kontakt gekommenen Nummern, also auch solche, die zwar im Adressbuch zugänglich sind, aber mit denen ihr noch nie einen Chat hattet). Deswegen gibt es dann reihenweise HTML-Dateien, die nur 3 KB groß sind und die keine Nachrichten enthalten, da noch nicht mit der Nummer gechattet wurde:

1727285039874.png


Ergebnis:

Die Chat-Ausgabe ist wie gesagt momentan noch beschränkt auf das Telegram-Layout, sollte sich aber bald mit der Einführung des WhatsApp-Web-Designs in meinen Augen erheblich verbessern. Ich persönlich empfinde das momentane Design noch eher mittelmäßig. Wer auf das Design/Layout nicht sonderlich viel Wert legt, sondern wer einfach nur seine Chats auf den PC auslagern will in Form eines Archivs, für den könnte auch die jetzige Form bereits ausreichen. Die Chat-Ausgabe sieht momentan wie folgt aus:

Sprachnachrichten sind direkt anklickbar und abspielbar:


1727285430811.png

Bilder und Videos werden ebenfalls integriert (Videos lassen sich anklicken und im Vollbildmodus abspielen):

1727285557353.png

Zitierte Nachrichten werden in Form eines anklickbaren Hyperlinks abgebildet, der nach Klicken dann direkt zur jeweiligen zitierten Nachricht führt:

1727285667278.png

Zusammenfassung:

Mit dem hier präsentierten WhatsApp-Chat-Exporter könnt ihr in Sekundenschnelle und ohne großen Aufwand eure gesamten WhatsApp-Chats in Gänze und als interaktive HTML-Dateien auf den PC exportieren und dort z.B. als Langzeit-Backup/Archiv auslagern, um im Client selber dann mal wieder etwas aufzuräumen und zu löschen.

Ein positiver Nebeneffekt dieses Exporters ist, dass er eure verschlüsselte msgstore.db.crypt-Datei direkt entschlüsselt, wodurch ihr ungehinderten Zugang zur WhatsApp-Datenbank habt - dies kann besonders dann hilfreich sein (bzw. ist absolute Voraussetzung), wenn tiefgehende Änderungen wie Chat-Zusammenführungen oder das Zusammenfügen verschiedener Chat-Backups vorgenommen werden sollen.

Da dies noch ein zurzeit laufendes und sich in der Entwicklung befindliches Projekt ist, wird es immer wieder Updates und Verbesserungen geben. In Kürze dann auch ein WhatsApp-basiertes Chat-Export-Layout.

--- to be continued ---
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: jandroid

Ähnliche Themen

H
Antworten
20
Aufrufe
491
html6405
html6405
T
  • Topilo56
Antworten
10
Aufrufe
176
Topilo56
T
A
  • anddroid
Antworten
4
Aufrufe
400
anddroid
A
Zurück
Oben Unten