Exportar iMessages en forma legible para el archivo

33

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

¿Hay una manera simple de exportar esta conversación para archivarla en una forma legible por humanos y también conservar alguna imagen?

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: Yo uso iMessage solo 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).

Szabolcs
fuente
1
¿Desea guardarlos desde un iDevice o Mac?
Matthieu Riegler
@MatthieuRiegler Una Mac. No uso iMessage en iOS, así que no pensé en esa posibilidad. Actualizaré la pregunta.
Szabolcs
1
¿ Apple.stackexchange.com/questions/88023/… ayuda o está buscando algo más?
nohillside
@patrix Estoy buscando una forma de sacar los mensajes de iMessage, para poder verlos incluso si dejo de usar OS X. Me doy cuenta de que fue un error responder en iMessage para mantener información importante, así que quiero moverme lejos de eso por completo, y con suerte rescatar el chatlog para el futuro.
Szabolcs el

Respuestas:

20

Si conoce la cuenta de iMessage de su contacto aquí hay un script 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' '\0' | xargs -0 -t -I fname cp fname .
Matthieu Riegler
fuente
Gracias, esto es útil. Sin embargo, esto no me dará las imágenes ...
Szabolcs
Cavaré un poco más para encontrarlos;)
Matthieu Riegler
¡Gracias! Acabo de encontrar una solución que es lo suficientemente buena por ahora, así que por favor no pierdas más tiempo en esto.
Szabolcs
hola, cómo ejecutar este script
Atmiya_Dharmesh
12

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 imágenes, archivos de audio y películas, almacenando cada conversación en un archivo de texto por número de teléfono.

https://github.com/PeterKaminski09/baskup

Editar: Desarrollé el script en una aplicación OS X con algunas características agradables como el reconocimiento de contactos. https://peterkaminski09.github.io/baskup

Peter Kaminski
fuente
¿Qué pasa si el contacto no tiene número de teléfono?
Szabolcs
2
Recupero toda la información de contacto de la tabla de chat en ./Library/Messages/chat.db. Esto no es específico en los números de teléfono de los usuarios. Solo su identificación asociada con sus mensajes. En la mayoría de los casos, este es de hecho un número de teléfono.
Peter Kaminski
Lo usé. Funcionó. Fue la única solución que encontré que no me costó dinero. ¡Gracias!
Erik Allen
Lo usé. Funcionó. Muy bien, debo agregar. +1 porque eso es todo lo que puedo dar por una sola respuesta.
Seamus
11

Encontré una solución viable:

  1. Desplácese hacia arriba hasta que se carguen todos los mensajes.
  2. Imprimir a PDF
  3. (Si tiene Acrobat), recorte los márgenes de las páginas para mejorar la legibilidad de los mensajes de páginas divididas.

El resultado no se ve muy bien , pero contiene todas las imágenes y se puede buscar el texto. Entonces es lo suficientemente bueno.

Szabolcs
fuente
44
¿Qué pasa si tiene 25,000 mensajes en la conversación y el desplazamiento no es viable?
Usuario
Lleva un poco de tiempo, pero creo que esta solución es buena para muchos casos de uso.
citadelgrad
6

Archivado

Esta persona parece tener una solución más pulida (sin faltar el respeto al extremadamente útil rascador SQLite anterior):

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

Para resumir el blog:

  • instalar Adium
  • elige la opción "importar de 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, con suerte, más amigables para el archivo, pero el sqliteenfoque para el enlace de archivos 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 sé las reglas para lo que entra y lo que no, así que puede que no esté completo, pero hay una cantidad justa allí)

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

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

imprimirá un origen si los Mensajes ponen uno allí para descargar.

gra
fuente
1
Sí, @Szabolcs, vi el comentario "por favor, no gastes tu tiempo en esto más", pero tuve que investigar un poco por mi cuenta, así que pensé que debería compartirlo en caso de que sea útil para otra persona.
Gra
0

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

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

Aiden
fuente
1
Bienvenido a Ask Different! Por favor no dé respuestas de solo enlace. Estamos buscando respuestas que brinden explicaciones de por qué responde la pregunta. Los enlaces pueden cambiar con el tiempo y luego perderemos el contexto de preguntas y respuestas. Consulte Cómo responder para obtener información sobre lo que constituye una buena respuesta. - De la opinión -
fsb
-1

La aplicación Exportar iMessages le permite guardar, imprimir, hacer copias de seguridad y recuperar SMS / iMessages en su Mac / PC.

iDeviceapps
fuente
1
Esto realmente no responde a la pregunta ya que dije explícitamente que uso iMessage solo en OS X, no en iOS.
Szabolcs