Comment puis-je convertir des journaux .ichat en fichiers texte?

22

Comment convertir les fichiers de transcription iChat créés par Messages en fichiers texte lisibles par l'homme pouvant être ouverts sans l'application Messages?

Pour référence, ce sont les fichiers de conversation situés dans ~/Library/Messages/Archive.

L'ouverture simple des fichiers .ichat dans un éditeur de texte comprend un tas de chaînes et de hachages supplémentaires. Les ouvrir dans Messages et copier-coller dans un éditeur de texte fonctionne, mais je préfère automatiser le processus si possible.

mae
la source

Réponses:

12

Les fichiers que Messages enregistre ont une ichatextension de fichier.

Mais à partir de la ligne de commande, vous pouvez les inspecter pour voir qu'il s'agit en fait de fichiers plist binaires :

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

Il s'avère que vous pouvez facilement convertir des fichiers plist binaires en documents XML lisibles par l'homme :

$ plutil -convert xml1 transcript.ichat

Maintenant, lorsque vous exécutez à filenouveau, vous pouvez voir que c'est un fichier XML:

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

Allez-y, ouvrez-le et voyez par vous-même:

$ open transcript.ichat
Sean Moubry
la source
8

Si vous connaissez sqlite, vous pouvez simplement exporter les messages directement depuis la base de données sur Mountain Lion iMessage.

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

À partir de la base de données, vous pouvez envoyer des commandes sql pour obtenir tous les messages et les champs associés qui vous intéressent. De plus, vous pouvez modifier les paramètres de sortie pour écrire directement dans un fichier.

De plus, en plus de la base de données, toutes les photos sont stockées dans le dossier Pièces jointes.

Kane Crisler
la source
3
Les transcriptions iChat ( .ichatfichiers) ne sont pas des bases de données SQLite.
Sean Moubry
7

Découvrez mon projet qui prendra toutes vos conversations et les convertira en un seul fichier texte lisible. Il ne convertira pas un seul iMessage, mais il collectera tous vos messages et pièces jointes, les sauvegardera et les mettra dans un format lisible par l'homme.

https://peterkaminski09.github.io/baskup

Peter Kaminski
la source
2
Fonctionne-t-il avec les fichiers journaux iChat?
nohillside
Il utilise vos fichiers journaux iChat trouvés dans votre ./Library/Messages/chat.db pour convertir en un fichier texte.
Peter Kaminski
Cela a bien fonctionné pour moi, merci! Je remarque que cela peut sauter le tout début de l'historique des messages si vous avez des conversations TRÈS longues (à moins qu'elles ne soient perdues à jamais si iMessage ne conserve pas tous les messages comme je le pensais). Néanmoins, le travail a toujours été fait!
Billy Bryce
Je pense que le principal problème que j'ai remarqué est que lorsque vous ouvrez votre macbook après avoir envoyé de nombreux messages sur votre téléphone, il y a ce délai entre iMessage sur mac et téléphone, ce qui entraîne la coupure des messages.
Peter Kaminski
Cela semble très utile, mais existe-t-il un moyen de supprimer les anciens messages une fois qu'ils ont été exportés / archivés / quoi que ce soit?
Paul R
1

J'ai créé un outil en ligne de commande pour convertir ces fichiers ichat en JSON séparé par des sauts de ligne

L'outil extrait les informations essentielles nues: message, expéditeur, date

Vous pouvez afficher le code source et / ou télécharger le binaire sur https://github.com/kfatehi/ichat2json

keyvan
la source
0

Si vous sélectionnez imprimer dans les menus de fichiers, lorsque la boîte d'impression s'ouvre dans le coin inférieur gauche se trouve un bouton pdf avec une liste déroulante. De là, vous pouvez enregistrer au format PDF, publier le script, envoyer un courrier électronique au format PDF ou envoyer à iTunes.

rclyde
la source
-1

Ce ne serait pas une solution parfaite, mais je remarque que les messages sont toujours entre Ä_et _$. Vous pouvez écrire un script pour extraire tout le texte qui a commencé et s'est terminé avec ces caractères. (n'importe quelle langue avec support rexex ferait l'affaire)

daviewales
la source
-1

Cela semble être une application idéale des flux de travail Automator ou AppleScript, car les deux peuvent faire un comportement de style "appuyez sur les boutons à l'écran". Vous diriez «prendre le fichier en entrée» et utiliser quelque chose sous «imprimer» ou «messages» s'il y en a un, ou utiliser AppleScript pour lui dire d'ouvrir le fichier et appuyer sur fichier et imprimer et enregistrer en pdf, puis fermez le fichier.

Andrew Wonnacott
la source
Pourriez-vous fournir une meilleure description de votre réponse. C'est suggestif mais ne montre aucune réponse particulière pour l'utilisateur avec des étapes.
Danijel-James W