40 votos

Exportación de iMessages en formato legible para su archivo

Tengo una larga conversación (de varios meses) de iMessage con un contacto. Él perdió estos mensajes cuando reinstaló su sistema operativo, pero yo 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 de forma legible para el ser humano, y también conservar las imágenes?

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

Nota: Sólo utilizo iMessage en OS X, no en iOS.

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

1 votos

¿Quieres guardarlos desde un iDevice o un Mac?

0 votos

@MatthieuRiegler Un Mac. No uso iMessage en iOS, así que no pensé en esa posibilidad. Voy a actualizar la pregunta.

1 votos

Hace apple.stackexchange.com/questions/88023/ ayuda o buscas otra cosa?

25voto

Satanicpuppy Puntos 4902

Si conoces la cuenta de iMessage de tu contacto aquí está un bash script 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 .

0 votos

Gracias, esto es útil. Sin embargo, esto no me dará las imágenes ...

0 votos

Indagaré un poco más para encontrarlos ;)

0 votos

Gracias. Acabo de encontrar una solución que es lo suficientemente buena por ahora, así que por favor no gastes más tu tiempo en esto.

13voto

Peter Kaminski Puntos 109

Me he tomado la libertad de ampliar la respuesta anterior de Matthieu. Escribí un script que automatizaría el proceso haciendo una copia de seguridad de todos los mensajes del usuario, incluyendo 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

Edición: He desarrollado el script en una aplicación para OS X con algunas buenas características como el reconocimiento de contactos. https://peterkaminski09.github.io/baskup

0 votos

¿Y si el contacto no tiene número de teléfono?

2 votos

Recupero toda la información de contacto de la tabla de chat en ./Library/Messages/chat.db. Esto no es específico de los números de teléfono de los usuarios. Sólo su identificación que se asocia con sus mensajes. En la mayoría de los casos esto es de hecho un número de teléfono.

0 votos

Lo usé. Funcionó. Fue la única solución que encontré que no costaba dinero. ¡Gracias!

11voto

Lee Puntos 26

He encontrado una solución viable:

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

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

4 votos

¿Qué pasa si tienes 25.000 mensajes en la conversación y el desplazamiento hacia arriba no es viable?

0 votos

Lleva un poco de tiempo, pero creo que esta solución es buena para muchos casos de uso.

6voto

gra Puntos 59

Archivo

Esta persona parece tener una solución más pulida (sin intención de faltar al respeto al extremadamente útil raspador SQLite de arriba):

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:

    ~/Librería/Application Support/Adium 2.0/Users/Default/Logs/

Los archivos convertidos están en HTML, más fácilmente legibles y esperamos que más fáciles de archivar, pero el sqlite El planteamiento de la vinculación de los accesorios parece sensato.

Anexos

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

Pero en realidad puede ver alguna 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 Mensajes pone uno en la descarga.

1 votos

Sí, @Szabolcs, vi el comentario de "por favor, no gastes más tu tiempo en esto", pero tuve que indagar un poco por mi cuenta, así que pensé que debía compartirlo por si le sirve a alguien más.

-1voto

iDeviceapps Puntos 1

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

1 votos

Esto no responde realmente a la pregunta, ya que he dicho explícitamente que uso iMessage sólo en OS X, no en iOS.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X