Como exportar uma conversa inteira do iMessage no Mac
Por que o app Mensagens não tem comando de exportação, os métodos gratuitos que funcionam mesmo assim, como obter o histórico que nunca sincronizou com o seu Mac, e como terminar com um álbum que você ainda conseguirá abrir daqui a anos.
· 5 min read
O app Mensagens no macOS não tem comando de Exportar. Nunca teve. Pesquise essa dúvida e os primeiros resultados são um tópico do suporte da Apple e um post do Reddit, o que já diz bastante sobre quão bem as opções nativas resolveram isso.
Aqui está o que realmente funciona.
Onde a conversa fica
Num Mac, o Mensagens guarda tudo em um banco de dados SQLite em ~/Library/Messages/chat.db, com os anexos em ~/Library/Messages/Attachments/. O macOS protege os dois: nenhum app consegue lê-los sem receber Acesso Total ao Disco nos Ajustes do Sistema, e a pasta fica oculta no Finder por padrão.
Duas coisas decorrem disso, e elas explicam quase toda a confusão em torno do assunto:
- Qualquer ferramenta que exporte suas mensagens precisa de Acesso Total ao Disco. Isso por si só não é sinal de alarme: é o único jeito que o macOS permite. O que importa é o que a ferramenta faz depois de ler o arquivo.
- O banco de dados é detalhe interno privado da Apple. A estrutura muda entre versões do macOS sem aviso. É por isso que ferramentas de exportação precisam ser atualizadas, e por isso que um álbum exportado nunca deveria estar no formato da Apple.
Método 1: Imprimir em PDF (gratuito, nativo, limitado)
- Abra o Mensagens e selecione a conversa.
- Role até o topo da conversa segurando Command + seta para cima, até parar de carregar mensagens antigas.
- Arquivo › Imprimir, depois PDF › Salvar como PDF.
Funciona, e para uma conversa curta é a resposta certa. Dois limites reais: você tem que carregar a conversa inteira rolando, o que é penoso com anos de histórico, e um PDF não consegue guardar vídeo ou áudio que toquem.
Método 2: Consultar o banco de dados você mesmo (gratuito, técnico)
Como chat.db é um arquivo SQLite padrão, dá para consultá-lo direto. Dê Acesso Total ao Disco ao seu terminal primeiro, e então:
sqlite3 ~/Library/Messages/chat.db
Fique atento a três armadilhas que pegam quem faz isso na mão:
- Os horários não são tempo Unix. O Mensagens guarda nanossegundos desde 2001-01-01, então você precisa de
datetime(message.date/1000000000 + 978307200, 'unixepoch'). textcostuma ser NULL. As mensagens modernas guardam o conteúdo emattributedBody, um typedstream serializado da Apple, e não na coluna simplestext. Decodificar isso direito é a parte difícil do problema inteiro, e tratar o binário ingenuamente como UTF-16 produz lixo que parece quase certo.- Abra em somente leitura. Use
file:...?mode=ropara que uma consulta descuidada nunca consiga escrever no seu banco do Mensagens em uso.
Se você quiser essa rota feita direito em vez de na mão, o imessage-exporter é gratuito, de código aberto e decodifica o typedstream corretamente.
Método 3: Exportar para um álbum (o que a maioria realmente quer)
O resultado que a maioria busca é uma pasta que dê para guardar: a conversa inteira, legível sem software especial, com as fotos e os vídeos intactos.
Isso significa uma exportação que produza:
- Todas as mensagens dos dois lados, em ordem, com horários.
- Todos os anexos copiados na qualidade original, não redimensionados dentro de um documento.
- Um formato que não dependa da ferramenta que o criou. HTML, JSON e Markdown simples servem. Um banco de dados proprietário não.
Nessa categoria estão o imessage-exporter, o iMazing, o Decipher TextMessage e o Message Album, que fez este site. A ênfase específica do Message Album é o último ponto: a exportação é um site offline autossuficiente, sem framework, CDN, fonte externa ou servidor, mais um manifesto de somas SHA-256, partindo da ideia de que aquilo que você está guardando não deveria parar de funcionar porque uma dependência sumiu.
Obter o histórico que nunca sincronizou com o seu Mac
Esse é o passo que a maioria dos guias pula, e muitas vezes é a razão de uma exportação sair incompleta.
Seu Mac só tem as mensagens que sincronizaram até ele. Se a conversa começou antes de você ter esse Mac, ou se o “Mensagens no iCloud” descarregou anexos antigos, exportar da biblioteca do próprio Mac vai deixar coisas de fora em silêncio.
A solução é exportar de um backup de iPhone:
- Conecte o iPhone ou iPad e abra o Finder.
- Selecione o aparelho na barra lateral.
- Escolha Fazer Backup Agora. Backups criptografados e não criptografados contêm Mensagens. Marque Criptografar backup local se você também quiser Saúde e outros dados protegidos.
- Aponte sua ferramenta de exportação para esse backup em vez da biblioteca do Mac.
O backup contém o que está no telefone, que normalmente é mais do que chegou ao Mac.
Como saber se uma exportação está completa
Faça uma única pergunta a qualquer ferramenta que usar: o que ela faz quando algo está faltando?
Anexos que nunca foram baixados localmente, e conteúdos privados da Apple que não podem ser decodificados, são ambos normais. Uma ferramenta que os relata como avisos explícitos deixa você saber o que tem. Uma que os descarta em silêncio deixa você com um álbum que parece completo e não é, e você só vai descobrir no dia em que for procurar uma foto específica.
Confira as contagens também. Se uma ferramenta informa quantas mensagens leu da origem e quantas escreveu na saída, esses dois números deveriam bater, ou a diferença deveria estar explicada.
O que fazer com o álbum depois
Um álbum que existe em um lugar só não está salvo, está apenas encaminhado. Copie-o para outro lugar: um disco externo, outra máquina, ou o armazenamento em nuvem que preferir. Como uma boa exportação é uma pasta comum de arquivos comuns, isso é só copiar uma pasta.
Se a sua exportação inclui somas de verificação, guarde o manifesto junto. É a única coisa que permite confirmar, daqui a cinco anos, que a cópia que você está vendo está intacta.