Como posso converter .ichat logs em arquivos de texto?

22

Como você converte os arquivos de transcrição do iChat criados pelo Messages em arquivos de texto legíveis por humanos que podem ser abertos sem o aplicativo Messages?

Para referência, esses são os arquivos de conversa localizados em ~/Library/Messages/Archive.

Simplesmente abrir os arquivos .ichat em um editor de texto inclui várias sequências e hashes adicionais. Abri-los em Mensagens e copiar e colar em um editor de texto funciona, mas eu preferiria automatizar o processo, se possível.

mae
fonte

Respostas:

12

Os arquivos que o Messages salva têm uma ichatextensão de arquivo.

Mas, na linha de comando, você pode inspecioná-los para ver se realmente são arquivos binários do plist :

$ file transcript.ichat
transcript.ichat: Apple binary property list

Acontece que você pode converter facilmente arquivos binários plist em documentos XML legíveis por humanos :

$ plutil -convert xml1 transcript.ichat

Agora, quando você executa filenovamente, pode ver que é um arquivo XML:

$ file transcript.ichat
transcript.ichat: XML document text

Vá em frente - abra-o e veja por si mesmo:

$ open transcript.ichat
Sean Moubry
fonte
8

Se você estiver familiarizado com o sqlite, poderá exportar as mensagens diretamente do banco de dados no Mountain Lion iMessage.

sqlite3 /Users/(username)/Library/Messages/chat.db

No banco de dados, você pode enviar comandos sql para obter toda e qualquer mensagem e campo associado de seu interesse. Além disso, você pode alterar as configurações de saída para gravar diretamente em um arquivo.

Além disso, além do banco de dados, todas as fotos são armazenadas na pasta Anexos.

Kane Crisler
fonte
3
As transcrições do iChat ( .ichatarquivos) não são bancos de dados SQLite.
Sean Moubry
7

Confira meu projeto, que terá todas as suas conversas e as converterá em um arquivo de texto legível. Ele não converterá apenas um único iMessage, mas coletará todas as suas mensagens e anexos, fará o backup e os colocará em um formato legível por humanos.

https://peterkaminski09.github.io/baskup

Peter Kaminski
fonte
2
Funciona com arquivos de log do iChat?
nohillside
Ele usa os arquivos de log do iChat encontrados em ./Library/Messages/chat.db para converter em um arquivo de texto.
Peter Kaminski
Isso funcionou muito bem para mim, obrigado! Percebo que ele pode pular o início dos históricos de mensagens, se você tiver conversas MUITO longas (a menos que elas se percam para sempre se o iMessage não mantiver todas as mensagens como eu pensava). No entanto, ainda conseguiu o trabalho!
Billy Bryce
Acho que o principal problema que notei é que, quando você abre o seu macbook depois de enviar muitas mensagens no seu telefone, existe um atraso entre o iMessage no mac e no telefone, e isso faz com que as mensagens sejam cortadas.
Peter Kaminski
Parece muito útil, mas existe uma maneira de excluir mensagens antigas depois de exportadas / arquivadas / o que for?
Paul R
1

Eu criei uma ferramenta de linha de comando para converter esses arquivos ichat em JSON separados por nova linha

A ferramenta extrai as informações essenciais básicas: mensagem, remetente, data

Você pode visualizar o código fonte e / ou baixar o binário em https://github.com/kfatehi/ichat2json

keyvan
fonte
0

Se você selecionar imprimir nos menus de arquivo, quando a caixa de impressão abrir no canto inferior esquerdo, haverá um botão pdf com uma lista suspensa. A partir daqui, você pode salvar como PDF, postar script, enviar como PDF ou enviar para o iTunes.

rclyde
fonte
-1

Esta não seria uma solução perfeita, mas noto que as mensagens estão sempre entre Ä_e _$. Você pode escrever um script para extrair todo o texto que começou e terminou com esses caracteres. (qualquer idioma com suporte a rexex faria)

daviewales
fonte
-1

Essa parece ser uma aplicação ideal dos fluxos de trabalho do Automator ou do AppleScript, pois ambos podem executar o comportamento do estilo "pressionar botões na tela". Você diria "pegue o arquivo como entrada" e use algo em "imprimir" ou "mensagens" se houver alguma dessas opções, ou use o AppleScript para instruí-lo a abrir o arquivo e pressionar o arquivo, imprimir e salvar e salvar como pdf e depois feche o arquivo

Andrew Wonnacott
fonte
Você poderia fornecer uma descrição melhor de sua resposta. Isso é sugestivo, mas não mostra nenhuma resposta específica para o usuário com as etapas.
Danijel-James W