¿Cómo puedo convertir registros .ichat a archivos de texto?

22

¿Cómo convierte los archivos de transcripción de iChat que crea Mensajes en archivos de texto legibles por humanos que se pueden abrir sin la aplicación Mensajes?

Como referencia, estos son los archivos de conversación ubicados en ~/Library/Messages/Archive.

Simplemente abrir los archivos .ichat en un editor de texto incluye un montón de cadenas y hashes adicionales. Abrirlos en Mensajes y copiar y pegar en un editor de texto funciona, pero preferiría automatizar el proceso si es posible.

mae
fuente

Respuestas:

12

Los archivos que guarda Messages tienen una ichatextensión de archivo.

Pero desde la línea de comando puede inspeccionarlos para ver que en realidad son archivos binarios de plist :

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

Resulta que puede convertir fácilmente archivos binarios plist en documentos XML legibles por humanos :

$ plutil -convert xml1 transcript.ichat

Ahora, cuando filevuelva a ejecutar , puede ver que es un archivo XML:

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

Adelante, ábrelo y compruébalo por ti mismo:

$ open transcript.ichat
Sean Moubry
fuente
8

Si está familiarizado con sqlite, puede exportar los mensajes directamente desde la base de datos en Mountain Lion iMessage.

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

Desde la base de datos, puede enviar comandos sql para obtener todos los mensajes y campos asociados que le interesen. Además, puede cambiar la configuración de salida para escribir directamente en un archivo.

Además, además de la base de datos, todas las fotos se almacenan en la carpeta Adjuntos.

Kane Crisler
fuente
3
Las transcripciones de iChat ( .ichatarchivos) no son bases de datos SQLite.
Sean Moubry
7

Mira mi proyecto que tomará todas tus conversaciones y las convertirá en un archivo de texto legible. No convertirá un solo iMessage, pero recopilará todos sus mensajes y archivos adjuntos, los respaldará y los pondrá en un formato legible para humanos.

https://peterkaminski09.github.io/baskup

Peter Kaminski
fuente
2
¿Funciona con los archivos de registro de iChat?
nohillside
Utiliza los archivos de registro de iChat que se encuentran en su ./Library/Messages/chat.db para convertirlos en un archivo de texto.
Peter Kaminski
Esto funcionó muy bien para mí, ¡gracias! Me doy cuenta de que puede omitir el comienzo de los historiales de mensajes si tienes conversaciones que son MUY largas (a menos que se pierdan para siempre si iMessage no guarda todos los mensajes como pensé). Sin embargo, todavía hizo el trabajo!
Billy Bryce
Creo que el problema principal que he notado es que cuando abres tu Macbook después de haber enviado muchos mensajes en tu teléfono, hay un retraso entre iMessage en Mac y teléfono, y esto hace que los mensajes se corten.
Peter Kaminski,
Esto parece muy útil, pero ¿hay alguna forma de eliminar mensajes antiguos una vez que se han exportado / archivado / lo que sea?
Paul R
1

He creado una herramienta de línea de comandos para convertir estos archivos ichat a JSON separados por una nueva línea

La herramienta extrae la información esencial: mensaje, remitente, fecha

Puede ver el código fuente y / o descargar el binario en https://github.com/kfatehi/ichat2json

keyvan
fuente
0

Si selecciona imprimir en los menús de archivos, cuando se abre el cuadro de impresión en la esquina inferior izquierda hay un botón pdf con un menú desplegable. Desde aquí puede guardar como pdf, publicar script, enviar como pdf o enviar a iTunes.

rclyde
fuente
-1

Esta no sería una solución perfecta, pero noto que los mensajes siempre están entre Ä_y _$. Puede escribir un script para extraer todo el texto que comenzó y terminó con esos caracteres. (cualquier idioma con soporte de rexex haría)

daviewales
fuente
-1

Esto parece una aplicación ideal de los flujos de trabajo de Automator o AppleScript, ya que ambos pueden hacer un comportamiento de estilo de "presionar botones en pantalla". Diría "tomar archivo como entrada" y usar algo debajo de "imprimir" o "mensajes" si hay alguno de esos, o usar AppleScript para indicarle que abra el archivo y presione el archivo e imprima y guarde como pdf y luego Cierra el archivo.

Andrew Wonnacott
fuente
¿Podría proporcionar una mejor descripción de su respuesta? Eso es sugerente pero no muestra ninguna respuesta particular para el usuario con pasos.
Danijel-James W