Exportar iMessages em formato legível para arquivamento

32

Eu tenho uma longa conversa (com vários meses de valor) do iMessage com um contato. Ele perdeu essas mensagens quando reinstalou o sistema operacional, mas ainda tenho o arquivo. Há algumas informações importantes que gostaríamos de manter.

Existe uma maneira simples de exportar essa conversa para arquivamento em um formato legível e também manter as imagens?

Eu posso selecionar partes da conversa, copiá-lo para a área de transferência e colá-lo em um documento de texto rico, mas isso descarta todas as imagens. Eu estou procurando uma maneira que mantenha as imagens.

Nota: Eu uso o iMessage apenas no OS X, não no iOS.

(Idealmente, eu também gostaria de exportar todos os anexos de arquivos que não sejam de imagem, mas não estou esperando que isso seja possível.)

Szabolcs
fonte
1
Você quer salvá-los de um iDevice ou Mac?
Matthieu Riegler
@MatthieuRiegler Um Mac. Eu não uso o iMessage no iOS, então não pensei nessa possibilidade. Eu atualizarei a questão.
Szabolcs
1
O apple.stackexchange.com/questions/88023/… ajuda ou você está procurando algo mais?
nohillside
@patrix Eu estou procurando uma maneira de obter as mensagens do iMessage, para que eu possa vê-las mesmo se eu parar de usar o OS X. Eu percebo que foi um erro responder no iMessage para manter informações importantes, então eu quero mudar longe disso completamente, e espero salvar o chatlog para o futuro.
Szabolcs

Respostas:

19

Se você sabe que a conta iMessage do seu contato aqui é um script meu para recuperar texto + imagens.

#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
fonte
Obrigado, isso é útil. Isso não vai me dar as imagens embora ...
Szabolcs
Vou cavar um pouco mais para encontrá-los;)
Matthieu Riegler
Obrigado! Acabei de encontrar uma solução que é boa o suficiente por enquanto, então, por favor, não gaste mais seu tempo com isso.
Szabolcs
oi, como executar este script
Atmiya_Dharmesh
12

Tomei a liberdade de aprofundar a resposta acima por Matthieu. Escrevi um script que automatizava o processo fazendo o backup de todas as mensagens do usuário, incluindo imagens, arquivos de áudio e filmes - armazenando cada conversa em um arquivo de texto por número de telefone.

https://github.com/PeterKaminski09/baskup

Edit: Eu desenvolvi o script em um aplicativo OS X com alguns recursos interessantes, como reconhecimento de contatos. https://peterkaminski09.github.io/baskup

Peter Kaminski
fonte
E se o contato não tiver um número de telefone?
Szabolcs
2
Recupero todas as informações de contato da tabela de bate-papo em ./Biblioteca/Messagens/chat.db. Isso não é específico nos números de telefone do usuário. Apenas o id deles associado às mensagens deles. Na maioria dos casos, isso é, na verdade, um número de telefone.
Peter Kaminski
Eu usei isso. Funcionou. Foi a única solução que achei que não custou dinheiro. Obrigado!
Erik Allen
Eu usei isso. Funcionou. Muito bem, devo acrescentar. +1 'porque é tudo que posso dar para uma única resposta.
Seamus
11

Eu encontrei uma solução viável:

  1. Rolar para cima até que todas as mensagens sejam carregadas
  2. Imprimir para PDF
  3. (Se você tiver o Acrobat,) recorte as margens das páginas para melhorar a legibilidade das mensagens divididas em várias páginas.

O resultado não parece ótimo , mas contém todas as imagens e o texto é pesquisável. Então é bom o suficiente.

Szabolcs
fonte
4
E se você tiver 25.000 mensagens na conversa e não for mais viável?
Utilizador
Demora um pouco de tempo, mas acho que esta solução é boa para muitos casos de uso.
citadelgrad
6

Arquivamento

Esta pessoa parece ter uma solução mais polida (sem desrespeito com o raspador de SQLite extremamente útil acima):

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

Para resumir o blog:

  • instalar o Adium
  • escolha a opção "importar do iChat"
  • As transcrições de Adium são geradas a partir de seus registros e armazenadas em:

    ~ / Library / Application Support / Adium 2.0 / Usuários / Padrão / Logs /

Os arquivos convertidos estão em HTML, mais facilmente legíveis e esperamos que sejam mais fáceis de arquivar, mas a sqliteabordagem à vinculação de anexos parece sensata.

Anexos

Observe que os anexos do iMessage tendem a viver em:

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

(Eu não sei as regras para o que vai lá e o que não entra, então pode não estar completo - mas há uma quantia justa lá)

Mas, na verdade, você pode ver algumas informações sobre o contato e a conversação nos atributos estendidos do arquivo:

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

irá imprimir uma origem se as Mensagens colocarem lá no download.

gra
fonte
1
Sim, @Szabolcs, eu vi o comentário "por favor, não gaste seu tempo com isso mais", mas tive que fazer um pouco de minha própria pesquisa, então pensei em compartilhar caso seja útil para outra pessoa.
gra
0

Seu mac deve salvá-los automaticamente. Aqui estão as instruções sobre como extraí-los:

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

Aiden
fonte
1
Bem-vindo ao pedir diferente! Por favor, não dê respostas apenas para links. Estamos à procura de respostas que forneçam explicações de por que ele responde à pergunta. Os links podem mudar ao longo do tempo e, em seguida, perderemos o contexto de perguntas e respostas. Veja Como responder para informações sobre o que constitui uma boa resposta. - De Review -
fsb
-1

Exportar iMessages aplicativo permite que você salve, imprima, faça backup e recupere SMS / iMessages para o seu Mac / PC.

iDeviceapps
fonte
1
Isso realmente não responde à pergunta, já que eu disse explicitamente que uso o iMessage somente no OS X, não no iOS.
Szabolcs