Exporte iMessages en formato legible por humanos para archivarlos

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

¿Existe una forma sencilla de exportar esta conversación para archivarla en un formato legible por humanos y también conservar las imágenes?

Puedo seleccionar partes de la conversación, copiarlas en el portapapeles y pegarlas en un documento de texto enriquecido, pero esto descarta todas las imágenes. Estoy buscando una manera que mantiene 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 imágenes, pero no espero que esto sea posible).

¿Quieres guardarlos desde un iDevice o un Mac?
@MatthieuRiegler Una Mac. No uso iMessage en iOS, así que no pensé en esa posibilidad. Actualizaré la pregunta.
¿ Ayuda apple.stackexchange.com/questions/88023/… o estás buscando algo más?
@patrix Estoy buscando una manera 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 guardar información importante, así que quiero mudarme lejos de él por completo, y espero salvar el registro de chat para el futuro.

Respuestas (6)

Si conoce la cuenta de iMessage de su contacto, aquí hay un script bash mío para recuperar texto e 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 .
Gracias, esto es útil. Aunque esto no me dará las imágenes...
Indagaré un poco más para encontrarlos ;)
¡Gracias! Acabo de encontrar una solución que es lo suficientemente buena por ahora, así que no pierda más su tiempo en esto.
hola, como se ejecuta este script
¿Cómo podría agregar la fecha delante del texto del mensaje? Sé cómo incluir la fecha en la consulta SQL, pero no el bit sed.

Me tomé la libertad de promover la respuesta anterior de Matthieu. Escribí un script que automatizaría el proceso haciendo 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 interesantes como el reconocimiento de contactos. https://peterkaminski09.github.io/baskup

¿Qué pasa si el contacto no tiene número de teléfono?
Recupero toda la información de contacto de la mesa de chat en ./Library/Messages/chat.db. Esto no es específico de los números de teléfono de los usuarios. Solo su identificación asociada con sus mensajes. En la mayoría de los casos, se trata de hecho de un número de teléfono.
Lo usé. Funcionó. Fue la única solución que encontré que no costó dinero. ¡Gracias!
Lo usé. Funcionó. Muy bien, debo agregar. +1 porque eso es todo lo que puedo dar por una sola respuesta.
Usé el script y todavía funciona en Mac OS 15 Catalina. Gracias

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 divididos entre páginas.

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

¿Qué sucede si tiene 25,000 mensajes en la conversación y no es viable desplazarse hacia arriba?
Toma un poco de tiempo, pero creo que esta solución es buena para muchos casos de uso.

archivar

Esta persona parece tener una solución más pulida (sin faltarle el respeto al extremadamente útil raspador de 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 desde iChat"
  • Las transcripciones de Adium se generan a partir de sus registros y se almacenan en:

    ~/Biblioteca/Soporte de aplicaciones/Adium 2.0/Usuarios/Predeterminado/Registros/

Los archivos convertidos están en HTML, más fáciles de leer y, con suerte, más fáciles de archivar, pero el sqliteenfoque de vinculación de archivos adjuntos parece sensato.

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 entra y lo que no, por lo que puede que no esté completo, pero hay una buena cantidad allí)

Pero en realidad puedes ver alguna 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 Mensajes puso uno allí en la descarga.

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

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

¡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 entonces perderemos el contexto de pregunta-respuesta. Consulte Cómo responder para obtener información sobre lo que constituye una buena respuesta. - De la revisión -

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

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