Exportar iMessages en forma legible para archivar

32

Tengo una larga conversación (con varios meses) de iMessage con un contacto. Perdió estos mensajes cuando reinstaló su sistema operativo, pero todavía tengo el archivo. Hay alguna información importante que nos gustaría mantener.

¿Existe una forma sencilla de exportar esta conversación para archivar en una forma legible para el ser humano y también mantener imágenes?

Puedo seleccionar partes de la conversación, copiarla en el portapapeles y pegarla en un documento de texto enriquecido, pero esto descarta todas las imágenes. Estoy buscando una manera que mantenga las imágenes.

Nota: solo uso iMessage en OS X, no en iOS.

(Idealmente, también me gustaría exportar todos los archivos adjuntos que no sean de imagen, pero no espero que esto sea posible).

    
pregunta Szabolcs 03.11.2013 - 20:52

6 respuestas

18

Si sabe que la cuenta de iMessage de su contacto aquí es un script de bash mío para recuperar texto + imágenes.

#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' '
#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' '%pre%' | xargs -0 -t -I fname cp fname .
' | xargs -0 -t -I fname cp fname .
    
respondido por el Matthieu Riegler 03.11.2013 - 21:42
11

Encontré una solución viable:

  1. Desplácese hacia arriba hasta que todos los mensajes estén cargados
  2. Imprimir en PDF
  3. (Si tiene Acrobat,) recorte los márgenes de las páginas para mejorar la legibilidad de los mensajes de división de páginas.

El resultado no se ve genial , pero contiene todas las imágenes y el texto se puede buscar. Así que es lo suficientemente bueno.

    
respondido por el Szabolcs 03.11.2013 - 22:52
11

Me tomé la libertad de promover la respuesta anterior de Matthieu. Escribí un guión que automatizaría el proceso al hacer una copia de seguridad de todos los mensajes del usuario, incluidas las imágenes, los archivos de audio y las películas, almacenando cada conversación en un archivo de texto por número de teléfono.

enlace

Editar: Desarrollé el script en una aplicación OS X con algunas características interesantes, como el reconocimiento de contactos. enlace

    
respondido por el Peter Kaminski 17.07.2015 - 22:06
6

Archivado

Esta persona parece tener una solución más refinada (sin faltarle el respeto al raspador de SQLite extremadamente útil anterior):

enlace

Para resumir el blog:

  • instale Adium
  • elija la opción "importar desde iChat"
  • Las transcripciones de Adium se generan a partir de sus registros y se almacenan en:

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

Los archivos convertidos están en HTML, son más fáciles de leer y se espera que sean más fáciles de archivar, pero el enfoque de sqlite para el enlace de adjuntos parece razonable.

Archivos adjuntos

Tenga en cuenta que los archivos adjuntos de iMessage tienden a vivir en:

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

(No conozco las reglas de lo que ocurre allí y lo que no, por lo que puede que no esté completo, pero hay una buena cantidad)

Pero en realidad puede ver información sobre el contacto y la conversación en el atributos extendidos del archivo:

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

imprimirá un origen si los Mensajes se ponen allí en la descarga.

    
respondido por el gra 06.05.2014 - 20:08
0

La aplicación Exportar iMessages le permite guardar, imprimir , haga copias de seguridad y recupere SMS / iMessages a su Mac / PC.

    
respondido por el iDeviceapps 12.11.2015 - 18:32
0

Tu mac debería guardarlos automáticamente. Aquí hay instrucciones sobre cómo extraerlas:

enlace

    
respondido por el Aiden 27.05.2016 - 02:04

Lea otras preguntas en las etiquetas