Convertendo e importando os arquivos de exportação de posts do Mastodon

Como fazer para converter e usar os dados do arquivo de exportação de posts do Mastodon, em formato activitypub/ json / gz?

O Mastodon possui opções bastante ricas de exportação dos dados, disponíveis no menu do perfil do usuário: dá para exportar os seguidores, listas, bloqueios, etc., tudo em CSV, um formato universal fácil de processar, importar em planilhas, gerar relatórios, etc.

A mesma tela de exportação também dá acesso a um caso especial: a exportação das planilhas e mídias postadas pelo usuário, e armazenadas no servidor. Ela é gerada mediante solicitação (por um botão na mesma tela), e tem a forma de um arquivo compactado em formato gz.

Ao descompactar esse arquivo gz, você encontra uma pasta com subpastas contendo as mídias que você postou, e meia dúzia de arquivos, incluindo o que tende a ser o maior deles: o outbox.json, que tem todo o seu histórico de posts (toots e boosts).

Ao contrário dos demais arquivos, este vem no formato json1, também de uso comum, mas mais adequado a programadores do que a usuários.

Enquanto não temos aplicativos que permitam ao usuário final o pleno uso desse arquivo gerado, resta aos que têm um pouco mais de inclinação técnica ajudar aos demais, fazendo a conversão para CSV para eles.

🚨 ATENÇÃO: se você for pedir a algum amigo que faça a conversão para você, certifique-se de ser alguém que você confie, porque ele terá acesso ao conjunto completo das suas mensagens, incluindo as particulares.

Uma maneira de fazer essa conversão, para quem tem a aptidão técnica, é por meio de um script como o da tela abaixo, que usa a linguagem awk (testei apenas com o gawk) e o gron, que já mencionamos antes.

O mesmo script está disponível para download aqui, basta renomear como actpub2csv.sh, tornar executável e rodá-lo no mesmo diretório em que estiver o arquivo outbox.json, redirecionando a saída para o CSV desejado, como no exemplo:
./actpub2csv.sh > meusposts.csv

O programa é simplificado, e recursos de tolerância a falhas, parametrização, opções adicionais, rodar em mais plataformas (testei em Mac e Debian) etc. foram deixados intencionalmente como um complemento aos interessados em expandi-lo.

O CSV gerado é na verdade um "quase-CSV", pois usa o TAB, e não uma vírgula, como separador de campos. Os campos exportados incluem a data, a URL, os destinatários e o texto (puro e formatado), ou o link em caso de ser um boost.

Ao importar numa planilha o arquivo CSV gerado, informe que o arquivo é delimitado, que o separador é o TAB (ou "Guia"), e que os caracteres são padrão UTF-8.

Não tenho condições de prestar suporte, manutenção ou serviços relacionados a esse script, e espero que logo surja uma alternativa melhor e apta a ser operada de maneira simples pelo próprio usuário interessado.

 
  1.  E usando as convenções do ActivityPub.