Exportieren Sie iMessages in lesbarer Form zur Archivierung

33

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 gibt es einige wichtige Informationen, die wir gerne behalten möchten.

Gibt es eine einfache Möglichkeit, diese Konversation für die Archivierung in einer für Menschen lesbaren Form zu exportieren und auch Bilder beizubehalten?

Ich kann Teile der Konversation auswählen, in die Zwischenablage kopieren und in ein Rich-Text-Dokument einfügen. Dabei werden jedoch alle Bilder verworfen. Ich suche einen Weg, der die Bilder hält.

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

(Im Idealfall möchte ich auch alle Anhänge exportieren, die keine Bilddateien sind, aber ich erwarte nicht, dass dies möglich ist.)

Szabolcs
quelle
1
Möchten Sie sie von einem iDevice oder Mac speichern?
Matthieu Riegler
@MatthieuRiegler Ein Mac. Ich verwende iMessage nicht unter iOS, daher habe ich nicht an diese Möglichkeit gedacht. Ich werde die Frage aktualisieren.
Szabolcs
1
Hilft apple.stackexchange.com/questions/88023/… oder suchen Sie etwas anderes?
Nohillside
@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 zu speichern, und ich möchte umziehen hoffentlich das Chatlog für die Zukunft retten.
Szabolcs

Antworten:

20

Wenn Sie wissen, dass der iMessage-Account Ihres Kontakts hier ein Bash-Skript von mir ist , um Text und 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 .
Matthieu Riegler
quelle
Danke, das ist nützlich. Das gibt mir aber nicht die Bilder ...
Szabolcs
Ich werde ein bisschen mehr graben, um sie zu finden;)
Matthieu Riegler
Vielen Dank! Ich habe gerade eine Lösung gefunden, die für den Moment gut genug ist. Bitte wenden Sie Ihre Zeit nicht mehr darauf auf.
Szabolcs
Hallo, wie man dieses Skript
ausführt
12

Ich habe mir erlaubt, die obige Antwort von Matthieu voranzutreiben. Ich habe ein Skript geschrieben, das den Prozess automatisiert, indem alle Nachrichten des Benutzers, einschließlich Bilder, Audiodateien und Filme, gesichert und jede Konversation in einer Textdatei nach Telefonnummer gespeichert wurden.

https://github.com/PeterKaminski09/baskup

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

Peter Kaminski
quelle
Was ist, wenn der Kontakt keine Telefonnummer hat?
Szabolcs
2
Ich rufe alle Kontaktinformationen aus der Chat-Tabelle in ./Library/Messages/chat.db ab. Dies gilt nicht speziell für Benutzer-Telefonnummern. Nur ihre ID, die mit ihren Nachrichten verknüpft ist. In den meisten Fällen handelt es sich tatsächlich um eine Telefonnummer.
Peter Kaminski
Ich benutzte es. Es funktionierte. Es war die einzige Lösung, die ich gefunden habe und die kein Geld gekostet hat. Vielen Dank!
Erik Allen
Ich benutzte es. Es funktionierte. Sehr schön sollte ich hinzufügen. +1, denn das ist alles, was ich für eine einzige Antwort geben kann.
Seamus
11

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 Ränder der Seiten ab, um die Lesbarkeit seitenübergreifender Nachrichten zu verbessern.

Das Ergebnis sieht nicht groß , aber es hat alle Bilder enthalten , und der Text ist suchbar. Es ist also gut genug.

Szabolcs
quelle
4
Was ist, wenn Sie 25.000 Nachrichten in der Konversation haben und das Scrollen nach oben nicht möglich ist?
Benutzer
Es dauert etwas, aber ich denke, diese Lösung eignet sich für viele Anwendungsfälle.
Citadelgrad
6

Archivierung

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

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

Um das Blog zusammenzufassen:

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

    ~ / Bibliothek / Anwendungsunterstützung / Adium 2.0 / Benutzer / Standard / Protokolle /

Die konvertierten Dateien sind in HTML, leichter lesbar und hoffentlich archivierungsfreundlicher, aber der sqliteAnsatz zur Verknüpfung von Anhängen erscheint sinnvoll.

Anlagen

Beachten Sie, dass sich iMessage-Anhänge in der Regel in folgenden Umgebungen befinden:

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

(Ich kenne die Regeln für das, was da reingeht und was nicht, also ist es vielleicht nicht vollständig - aber es steckt eine ganze Menge drin.)

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>

Gibt einen Ursprung aus, wenn Nachrichten dort zum Download angeboten werden.

gra
quelle
1
Ja, @Szabolcs, ich habe den Kommentar "Bitte verbringe deine Zeit nicht mehr damit" gesehen, musste aber ein bisschen selbst graben, also dachte ich, ich sollte ihn teilen, falls er jemand anderem nützlich ist.
gra
0

Ihr Mac sollte sie automatisch speichern. Hier finden Sie Anweisungen zum Extrahieren:

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

Aiden
quelle
1
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 Wie Antwort für Informationen über was eine gute Antwort bildet. - Aus der Bewertung -
fsb
-1

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

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