Exporter des iMessages sous forme lisible par l'homme à des fins d'archivage

33

J'ai une longue conversation (plusieurs mois) avec iMessage. Il a perdu ces messages lors de la réinstallation de son système d'exploitation, mais j'ai toujours les archives. Il y a quelques informations importantes que nous aimerions garder.

Existe-t-il un moyen simple d’exporter cette conversation à des fins d’archivage sous une forme lisible par l’homme, tout en conservant des images?

Je peux sélectionner des parties de la conversation, la copier dans le presse-papiers et la coller dans un document RTF, mais toutes les images sont supprimées. Je cherche un moyen de conserver les images.

Remarque: j'utilise iMessage uniquement sur OS X, pas iOS.

(Idéalement, j'aimerais également exporter toutes les pièces jointes autres que des images, mais je ne m'attends pas à ce que cela soit possible.)

Szabolcs
la source
1
Voulez-vous les sauvegarder depuis un iDevice ou un Mac?
Matthieu Riegler
@MatthieuRiegler Un Mac. Je n'utilise pas iMessage sur iOS, je n'ai donc pas pensé à cette possibilité. Je vais mettre à jour la question.
Szabolcs
1
Apple.stackexchange.com/questions/88023/… aide- t- il ou cherchez-vous autre chose?
nohillside
@patrix Je cherche un moyen d'extraire les messages d'iMessage afin de pouvoir les visualiser même si j'arrête d'utiliser OS X. Je me rends compte que ce fut une erreur de répondre sur iMessage pour conserver des informations importantes, alors je souhaite me déplacer. loin de tout, et espérons sauver le journal des discussions pour l'avenir.
Szabolcs

Réponses:

20

Si vous connaissez le compte iMessage de votre contact, voici un de mes scripts bash pour récupérer du texte + des images.

#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
la source
Merci, c'est utile. Cela ne me donnera pas les images cependant ...
Szabolcs
Je vais creuser un peu plus pour les trouver;)
Matthieu Riegler
Merci! Je viens de trouver une solution qui convient assez bien pour le moment, alors ne perdez plus votre temps, s'il vous plaît.
Szabolcs
salut, comment exécuter ce script
Atmiya_Dharmesh
12

J'ai pris la liberté de développer la réponse ci-dessus de Matthieu. J'ai écrit un script qui automatiserait le processus en sauvegardant tous les messages de l'utilisateur, y compris les images, les fichiers audio et les films, en enregistrant chaque conversation dans un fichier texte par numéro de téléphone.

https://github.com/PeterKaminski09/baskup

Edit: J'ai développé le script dans une application OS X avec quelques fonctionnalités intéressantes telles que la reconnaissance de contact. https://peterkaminski09.github.io/baskup

Peter Kaminski
la source
Et si le contact n'a pas de numéro de téléphone?
Szabolcs
2
Je récupère toutes les informations de contact de la table de discussion dans ./Library/Messages/chat.db. Ce n'est pas spécifique aux numéros de téléphone des utilisateurs. Juste leur identifiant associé à leurs messages. Dans la plupart des cas, il s’agit en fait d’un numéro de téléphone.
Peter Kaminski
Je l'ai utilisé. Ça a marché. C'était la seule solution que j'ai trouvée qui ne coûtait pas d'argent. Merci!
Erik Allen
Je l'ai utilisé. Ça a marché. Très bien, je devrais ajouter. +1 'parce que c'est tout ce que je peux donner pour une seule réponse.
Seamus
11

J'ai trouvé une solution réalisable:

  1. Faites défiler jusqu'à ce que tous les messages sont chargés
  2. Imprimer en PDF
  3. (Si vous utilisez Acrobat,) rognez les marges des pages pour améliorer la lisibilité des messages répartis sur plusieurs pages.

Le résultat ne semble pas grande , mais elle contient toutes les images et le texte est consultable. Donc c'est assez bon.

Szabolcs
la source
4
Que faire si vous avez 25 000 messages dans la conversation et que le défilement n'est pas viable?
Utilisateur
Cela prend un peu de temps, mais je pense que cette solution convient à de nombreux cas d'utilisation.
citadelgrad
6

Archivage

Cette personne semble avoir une solution plus raffinée (aucun manque de respect vis-à-vis du très utile racleur SQLite ci-dessus):

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

Pour résumer le blog:

  • installer Adium
  • choisissez l'option "importer d'iChat"
  • Les transcriptions Adium sont générées à partir de vos journaux et stockées dans:

    ~ / Bibliothèque / Application Support / Adium 2.0 / Utilisateurs / Par défaut / Journaux /

Les fichiers convertis sont au format HTML, plus facilement lisibles et, espérons-le, plus conviviaux pour les archives, mais l' sqliteapproche du couplage des pièces jointes semble judicieuse.

Les pièces jointes

Notez que les pièces jointes iMessage ont tendance à vivre dans:

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

(Je ne connais pas les règles pour ce qui est écrit et ce qui ne l'est pas, donc ce n'est peut-être pas complet - mais il y en a une bonne quantité)

Mais en réalité, vous pouvez voir des informations sur le contact et la conversation dans les attributs étendus du fichier:

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

imprimera une origine si Messages en met une ici en téléchargement.

gra
la source
1
Oui, @Szabolcs, j'ai vu le commentaire "S'il vous plaît, ne passez plus votre temps là-dessus", mais j'ai dû creuser un peu moi-même, j'ai donc pensé que je devrais le partager au cas où il serait utile à quelqu'un d'autre.
gra
0

Votre mac devrait les sauvegarder automatiquement. Voici les instructions sur la façon de les extraire:

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

Aiden
la source
1
Bienvenue à Ask Different! S'il vous plaît ne donnez pas de réponses uniquement par liens. Nous cherchons des réponses qui expliquent pourquoi cela répond à la question. Les liens peuvent changer au fil du temps et nous perdrons alors le contexte question-réponse. Voir Comment répondre aux questions pour savoir ce qui constitue une bonne réponse. - De l'avis -
fsb
-1

Exporter l' application iMessages vous permet de sauvegarder, imprimer, sauvegarder et récupérer des SMS / iMessages sur votre Mac / PC.

iDeviceapps
la source
1
Cela ne répond pas vraiment à la question, car j’ai dit explicitement que j’utilise iMessage uniquement sous OS X, pas sur iOS.
Szabolcs