Wie kann ich .ichat-Protokolle in Textdateien konvertieren?

22

Wie konvertieren Sie die von Messages erstellten iChat-Transkriptdateien in lesbare Textdateien, die ohne die Messages-App geöffnet werden können?

Zu Referenzzwecken sind dies die Konversationsdateien in ~/Library/Messages/Archive.

Das einfache Öffnen der .ichat-Dateien in einem Texteditor enthält eine Reihe zusätzlicher Zeichenfolgen und Hashes. Das Öffnen in Nachrichten und das Einfügen in einen Texteditor funktioniert, aber ich würde es vorziehen, den Vorgang nach Möglichkeit zu automatisieren.

Mae
quelle

Antworten:

12

Die von Messages ichatgespeicherten Dateien haben eine Dateierweiterung.

Von der Befehlszeile aus können Sie jedoch überprüfen, ob es sich tatsächlich um binäre Plist- Dateien handelt:

$ file transcript.ichat
transcript.ichat: Apple binary property list

Es hat sich herausgestellt, dass Sie binäre plist-Dateien leicht in lesbare XML-Dokumente konvertieren können :

$ plutil -convert xml1 transcript.ichat

Wenn Sie es jetzt fileerneut ausführen , sehen Sie, dass es sich um eine XML-Datei handelt:

$ file transcript.ichat
transcript.ichat: XML document text

Gehen Sie voran - öffnen Sie es und überzeugen Sie sich selbst:

$ open transcript.ichat
Sean Moubry
quelle
8

Wenn Sie mit SQLite vertraut sind, können Sie die Nachrichten einfach direkt aus der Datenbank in Mountain Lion iMessage exportieren.

sqlite3 /Users/(username)/Library/Messages/chat.db

Aus der Datenbank können Sie SQL-Befehle senden, um alle Nachrichten und zugehörigen Felder abzurufen, die Sie interessieren. Außerdem können Sie die Ausgabeeinstellungen ändern, um direkt in eine Datei zu schreiben.

Zusätzlich zur Datenbank werden alle Fotos im Ordner Anhänge gespeichert.

Kane Crisler
quelle
3
iChat-Transkripte ( .ichatDateien) sind keine SQLite-Datenbanken.
Sean Moubry
7

Schauen Sie sich mein Projekt an, das alle Ihre Konversationen aufnimmt und sie in eine lesbare Textdatei konvertiert. Es wird nicht nur eine einzelne iMessage konvertiert, sondern alle Ihre Nachrichten und Anhänge werden gesammelt, gesichert und in ein für Menschen lesbares Format gebracht.

https://peterkaminski09.github.io/baskup

Peter Kaminski
quelle
2
Funktioniert es mit iChat-Protokolldateien?
Nohillside
Es verwendet Ihre iChat-Protokolldateien aus Ihrer ./Library/Messages/chat.db, um sie in eine Textdatei zu konvertieren.
Peter Kaminski
Das hat gut funktioniert, danke! Ich stelle jedoch fest, dass der Beginn des Nachrichtenverlaufs übersprungen werden kann, wenn Konversationen SEHR lang sind (es sei denn, sie gehen für immer verloren, wenn iMessage nicht alle Nachrichten speichert, wie ich dachte). Trotzdem immer noch die Arbeit erledigt!
Billy Bryce
Ich denke, das Hauptproblem, das mir aufgefallen ist, ist, dass wenn Sie Ihr MacBook öffnen, nachdem Sie viele Nachrichten auf Ihrem Telefon gesendet haben, es diese Verzögerung zwischen iMessage auf dem Mac und dem Telefon gibt und dies dazu führt, dass die Nachrichten abgeschnitten werden.
Peter Kaminski
Das sieht sehr nützlich aus, aber gibt es eine Möglichkeit, ältere Nachrichten zu löschen, nachdem sie exportiert / archiviert wurden?
Paul R
1

Ich habe ein Befehlszeilentool zum Konvertieren dieser ichat-Dateien in durch Zeilenumbrüche getrenntes JSON erstellt

Das Tool extrahiert die wichtigsten Informationen: Nachricht, Absender, Datum

Sie können den Quellcode anzeigen und / oder Binärdateien unter https://github.com/kfatehi/ichat2json herunterladen

keyvan
quelle
0

Wenn Sie Drucken aus den Dateimenüs auswählen, befindet sich beim Öffnen des Druckfelds unten links eine PDF-Schaltfläche mit einem Dropdown-Menü. Von hier aus können Sie als PDF speichern, Skripte posten, als PDF versenden oder an iTunes senden.

rclyde
quelle
-1

Dies wäre keine perfekte Lösung, aber ich stelle fest, dass die Nachrichten immer zwischen Ä_und liegen _$. Sie könnten ein Skript schreiben, um den gesamten Text zu extrahieren, der mit diesen Zeichen begann und endete. (jede Sprache mit Rexex-Unterstützung würde ausreichen)

daviewales
quelle
-1

Dies scheint eine ideale Anwendung für Automator-Workflows oder AppleScript zu sein, da beide das Verhalten "Drucktasten auf dem Bildschirm" ausführen können. Sagen Sie "Datei als Eingabe übernehmen" und verwenden Sie etwas unter "Drucken" oder "Nachrichten", wenn dies der Fall ist, oder verwenden Sie AppleScript, um die Datei zu öffnen und auf "Datei" zu klicken und als PDF zu drucken und zu speichern schließe die Datei

Andrew Wonnacott
quelle
Könnten Sie Ihre Antwort besser beschreiben? Dies ist sinnvoll, zeigt dem Benutzer jedoch keine bestimmte Antwort mit Schritten.
Danijel-James W