Exportieren Sie iMessages in menschenlesbarer Form zur Archivierung

Ich habe ein langes (mehrere Monate dauerndes) iMessage-Gespräch mit einem Kontakt. Er hat diese Nachrichten verloren, als er sein Betriebssystem neu installiert hat, aber ich habe immer noch das Archiv. Dort finden Sie einige wichtige Informationen, die wir gerne aufbewahren möchten.

Gibt es eine einfache Möglichkeit, dieses Gespräch zur Archivierung in einer für Menschen lesbaren Form zu exportieren und auch alle Bilder aufzubewahren?

Ich kann Teile der Konversation auswählen, in die Zwischenablage kopieren und in ein Rich-Text-Dokument einfügen, aber dadurch werden alle Bilder verworfen. Ich suche nach einer Möglichkeit, die Bilder zu behalten.

Hinweis: Ich verwende iMessage nur unter OS X, nicht unter iOS.

(Idealerweise möchte ich auch alle Nicht-Bild-Dateianhänge exportieren, aber ich erwarte nicht, dass dies möglich sein wird.)

Möchten Sie sie von einem iDevice oder einem Mac speichern?
@MatthieuRiegler Ein Mac. Ich verwende iMessage nicht unter iOS, also habe ich nicht an diese Möglichkeit gedacht. Ich werde die Frage aktualisieren.
Hilft apple.stackexchange.com/questions/88023/… oder suchen Sie etwas anderes?
@patrix Ich suche nach einer Möglichkeit, die Nachrichten aus iMessage herauszuholen, damit ich sie auch dann anzeigen kann, wenn ich OS X nicht mehr verwende. Mir ist klar, dass es ein Fehler war, auf iMessage zu antworten, um wichtige Informationen aufzubewahren, also möchte ich umziehen vollständig davon fernhalten und das Chatlog hoffentlich für die Zukunft retten.

Antworten (6)

Wenn Sie das iMessage-Konto Ihres Kontakts kennen, ist hier ein Bash-Skript von mir , um Text + Bilder abzurufen.

#Parameter is a iMessage account (email or phone number i.e. +33616.... )
if [ $# -lt 1 ]; then
    echo "Enter a iMessage account (email of phone number i.e +33616.....) "
fi
login=$1

#Retrieve the text messages 

sqlite3 ~/Library/Messages/chat.db "
select is_from_me,text from message where handle_id=(
select handle_id from chat_handle_join where chat_id=(
select ROWID from chat where guid='iMessage;-;$1')
)" | sed 's/1\|/me: /g;s/0\|/budy: /g' > MessageBackup.txt


#Retrieve the attached stored in the local cache

sqlite3 ~/Library/Messages/chat.db "
select filename from attachment where rowid in (
select attachment_id from message_attachment_join where message_id in (
select rowid from message where cache_has_attachments=1 and handle_id=(
select handle_id from chat_handle_join where chat_id=(
select ROWID from chat where guid='iMessage;-;$1')
)))" | cut -c 2- | awk -v home=$HOME '{print home $0}' | tr '\n' '\0' | xargs -0 -t -I fname cp fname .
Danke, das ist nützlich. Das bringt mir aber keine Bilder ...
Ich werde ein bisschen mehr graben, um sie zu finden;)
Danke! Ich habe gerade eine Lösung gefunden, die für den Moment gut genug ist, also verschwenden Sie bitte keine Zeit mehr damit.
Hallo, wie man dieses Skript ausführt
Wie könnte ich das Datum vor dem Nachrichtentext hinzufügen? Ich weiß, wie man das Datum in die SQL-Abfrage einbezieht, aber nicht das Sed-Bit.

Ich habe mir erlaubt, die obige Antwort von Matthieu zu ergänzen. Ich schrieb ein Skript, das den Prozess automatisierte, indem es alle Nachrichten des Benutzers, einschließlich Bilder, Audiodateien und Filme, sicherte und jede Konversation in einer Textdatei nach Telefonnummer speicherte.

https://github.com/PeterKaminski09/baskup

Bearbeiten: Ich habe das Skript zu einer OS X-App mit einigen netten Funktionen wie Kontakterkennung entwickelt. https://peterkaminski09.github.io/baskup

Was ist, wenn der Kontakt keine Telefonnummer hat?
Ich hole alle Kontaktinformationen aus der Chat-Tabelle in ./Library/Messages/chat.db. Dies ist nicht spezifisch für Benutzertelefonnummern. Nur ihre ID, die mit ihren Nachrichten verknüpft ist. In den meisten Fällen ist dies tatsächlich eine Telefonnummer.
Ich benutzte es. Es funktionierte. Es war die einzige Lösung, die ich gefunden habe, die kein Geld gekostet hat. Danke schön!
Ich benutzte es. Es funktionierte. Sehr schön, sollte ich hinzufügen. +1, weil das alles ist, was ich für eine einzige Antwort geben kann.
Ich habe das Skript verwendet und es funktioniert immer noch in Mac OS 15 Catalina. Danke

Ich habe eine praktikable Lösung gefunden:

  1. Scrollen Sie nach oben, bis alle Nachrichten geladen sind
  2. Als PDF drucken
  3. (Wenn Sie über Acrobat verfügen,) schneiden Sie die Seitenränder ab, um die Lesbarkeit von seitenübergreifenden Nachrichten zu verbessern.

Das Ergebnis sieht nicht gut aus , enthält aber alle Bilder und der Text ist durchsuchbar. Es ist also gut genug.

Was ist, wenn Sie 25.000 Nachrichten in der Konversation haben und das Scrollen nach oben nicht möglich ist?
Es dauert ein wenig, aber ich denke, diese Lösung ist für viele Anwendungsfälle gut.

Archivierung

Diese Person scheint eine ausgefeiltere Lösung zu haben (keine Respektlosigkeit gegenüber dem äußerst nützlichen SQLite-Scraper oben):

http://www.chrisfinke.com/2013/11/05/convert-ichat-transcripts-to-useable-xml/

Um den Blog zusammenzufassen:

  • Adium installieren
  • Wählen Sie die Option "Aus iChat importieren".
  • Adium-Transkripte werden aus Ihren Protokollen generiert und gespeichert in:

    ~/Library/Application Support/Adium 2.0/Users/Default/Logs/

Die konvertierten Dateien sind in HTML, leichter lesbar und hoffentlich archivfreundlicher, aber der sqliteAnsatz zur Verknüpfung von Anhängen sieht vernünftig aus.

Anhänge

Beachten Sie, dass iMessage-Anhänge in der Regel leben in:

~/Library/Containers/com.apple.iChat/Data/Library/Messages/Attachments/...

(Ich kenne die Regeln nicht, was da reinkommt und was nicht, also ist es vielleicht nicht vollständig - aber da ist eine ganze Menge drin)

Aber tatsächlich können Sie einige Informationen über den Kontakt und die Konversation in den erweiterten Attributen der Datei sehen:

$ xattr -lp com.apple.metadata:kMDItemWhereFroms <attachment>

druckt einen Ursprung, wenn Messages einen dort zum Download bereitstellt.

Ja, @Szabolcs, ich habe den Kommentar "Bitte verbringen Sie Ihre Zeit nicht mehr damit" gesehen, musste aber selbst ein bisschen graben, also dachte ich, ich sollte ihn teilen, falls er für jemand anderen nützlich ist.

Ihr Mac sollte sie automatisch speichern. Hier sind Anweisungen, wie Sie sie extrahieren können:

http://www.imore.com/how-view-and-move-your-imessage-history-and-attachments

Willkommen bei Ask Different! Bitte geben Sie keine Nur-Link-Antworten. Wir suchen nach Antworten, die erklären, warum die Frage beantwortet wird. Links können sich im Laufe der Zeit ändern und dann verlieren wir den Frage-Antwort-Kontext. Siehe Antworten für Informationen darüber, was eine gute Antwort ausmacht. - Aus Bewertung -

Mit der Export iMessages -App können Sie SMS/iMessages auf Ihrem Mac/PC speichern, drucken, sichern und wiederherstellen.

Dies beantwortet die Frage nicht wirklich, da ich ausdrücklich gesagt habe, dass ich iMessage nur unter OS X verwende, nicht unter iOS.