Arquivo Bluesky 2026: 4 Formas de Salvar Posts AT Protocol
O Bluesky ultrapassou 40 milhões de usuários no final de 2026, e a pergunta que todo usuário avançado eventualmente faz é: como faço para tirar meus posts? Diferente do X, o Bluesky não tem botão "Baixar um arquivo dos seus dados". Se você tem anos de threads, opiniões e posts long-form na rede, sua única garantia de mantê-los é exportá-los você mesmo. Aqui estão quatro abordagens que realmente funcionam — de scripts de uma linha a ferramentas completas de terceiros.
Por Que o Arquivamento do Bluesky É Diferente do X
O X (Twitter) oferece download de arquivo nativo desde 2012. O Bluesky, construído no AT Protocol, segue uma abordagem fundamentalmente diferente: seus dados vivem em um Personal Data Server (PDS), e o protocolo foi projetado para portabilidade, não para lock-in de plataforma. Essa escolha de design significa que não há botão de exportação — mas também significa que seus dados são muito mais acessíveis via API do que em qualquer plataforma proprietária.
A implicação prática: se você quer um arquivo do Bluesky, você escreve um script ou usa uma ferramenta que envolve um.
Comparação de Métodos
| Método | Ideal Para | Requer Auth | Posts Históricos | Dificuldade |
|---|---|---|---|---|
| API AT Protocol | Seus próprios posts, controle total | Sim (senha de app) | Sim | Média |
| Jetstream (WebSocket) | Captura de novos posts em tempo real | Não | Não | Média |
| Exportação CAR do PDS | Dump completo de dados brutos | Sim (admin PDS) | Sim | Avançada |
| Ferramentas de Terceiros | Exportação sem código, um clique | Varia | Sim | Fácil |
Método 1: A API do AT Protocol
A abordagem mais direta usa a biblioteca Python oficial atproto para percorrer seu feed de autor e salvar cada post. Este é o método que oferece mais controle sobre o formato de saída.
# Export Bluesky posts and threads via AT Protocol
# Requires: pip install atproto
from atproto import Client
client = Client()
client.login('your-handle.bsky.social', 'your-app-password')
# Fetch your own author feed (most recent 100 posts)
feed = client.app.bsky.feed.get_author_feed(
{'actor': 'your-handle.bsky.social', 'limit': 100}
)
for item in feed.feed:
post = item.post
print(post.record.text)
print(post.record.created_at)
print('---')
A partir daí, converter para Markdown é um pequeno script adicional:
# Save every exported post as individual Markdown files
# One file per post, YAML frontmatter included
import json, pathlib, re
def slugify(text):
return re.sub(r'[^a-z0-9]+', '-', text.lower()).strip('-')[:60]
out = pathlib.Path('bluesky-archive')
out.mkdir(exist_ok=True)
with open('export.jsonl') as f:
for line in f:
post = json.loads(line)
slug = slugify(post['text'][:60]) or 'untitled'
md = f"---\ntitle: \"{post['text'][:70]}...\"\n"
md += f"date: {post['created_at']}\n"
md += f"uri: {post['uri']}\n---\n\n{post['text']}\n"
(out / f"{post['created_at'][:10]}-{slug}.md").write_text(md)
print(f"Archived {len(list(out.glob('*.md')))} posts to {out}/")
Método 2: Jetstream para Captura em Tempo Real
Se você quer capturar posts conforme são publicados — para análise de tendências ou pesquisa — Jetstream é um WebSocket público que transmite todos os eventos do firehose do Bluesky sem autenticação. Não faz backfill de histórico, então é um complemento ao método da API, não um substituto.
# Subscribe to Jetstream and capture all new Bluesky posts
# No authentication required
import asyncio, websockets, json
async def capture():
uri = "wss://jetstream2.us-east.bsky.network/subscribe?wantedCollections=app.bsky.feed.post"
async with websockets.connect(uri) as ws:
async for message in ws:
event = json.loads(message)
# Filter: only posts from accounts you follow or a specific handle
print(event["commit"]["record"]["text"])
asyncio.run(capture())
Método 3: Exportação CAR do PDS
Para uma exportação bruta completa — cada post, cada curtida, cada follow, cada mídia — você pode solicitar um arquivo CAR (Content Addressable aRchive) diretamente do seu PDS. Este é o equivalente mais próximo do Bluesky ao download de arquivo do X, mas requer acesso de administrador em um PDS auto-hospedado ou uma solicitação de suporte no bsky.social.
Arquivos CAR não são legíveis por humanos. Você precisará de uma ferramenta como go-car ou um script personalizado para analisá-los. Este método é ideal para usuários que querem um backup forense completo, não um arquivo legível.
Método 4: Ferramentas de Terceiros
Se escrever Python não é sua praia, várias ferramentas envolvem a API em uma experiência de um clique:
O ThreadGrab exporta threads e posts long-form do Bluesky para Markdown limpo com um único comando. A saída é portátil — funciona no Obsidian, Notion, GitHub ou qualquer gerador de site estático. Para gerentes de mídia social que precisam arquivar conteúdo em múltiplas plataformas (X Articles, Bluesky long-form, LinkedIn Newsletter), o ThreadGrab gerencia o pipeline completo.
Skython e Bluesky Archive (ambos open source) oferecem exportação com interface gráfica para HTML e JSON. Eles lidam com paginação, downloads de mídia e desduplicação automaticamente.
Passos Práticos para Arquivar Seu Conteúdo do Bluesky Hoje
Passo 1: Gere uma senha de app. Vá em Configurações → Senhas de App no Bluesky e crie uma senha dedicada para seu script de exportação. Nunca use sua senha principal em um script.
Passo 2: Execute a exportação. Use o script da API AT Protocol acima para buscar todos os seus posts. Salve a saída como JSONL (um objeto JSON por linha).
Passo 3: Converta para Markdown. Execute o script de conversão para gerar um arquivo Markdown por post com frontmatter YAML. Este formato sobreviverá a qualquer plataforma.
Passo 4: Configure uma exportação recorrente. O melhor arquivo é um arquivo atual. Configure um cron job mensal para reexecutar a exportação e sincronizar novos posts ao seu diretório de arquivo.
# Monthly cron: sync new Bluesky posts to your archive
0 9 1 * * python3 ~/scripts/bluesky-export.py && python3 ~/scripts/bluesky-to-md.py
FAQ
O Bluesky tem exportação nativa de arquivo?
Não. Diferente do X (Twitter), que possui download de arquivo integrado, o Bluesky não oferece exportação com um clique. Você precisa usar a API do AT Protocol, uma ferramenta de terceiros ou solicitar seus dados diretamente ao seu PDS (Personal Data Server).
Qual a diferença entre Jetstream e a API do Bluesky?
A API padrão do Bluesky (app.bsky.feed.getAuthorFeed) retorna posts página por página e requer autenticação. Jetstream é um WebSocket público que transmite todo novo post do Bluesky em tempo real — não requer autenticação, mas só carrega posts novos, não históricos.
Posso exportar posts do Bluesky para Markdown?
Sim. Após buscar os posts via API, converter para Markdown é simples. O ThreadGrab exporta threads do Bluesky para Markdown limpo automaticamente. Para exportações manuais, um pequeno script Python com a biblioteca atproto pode gerar um arquivo Markdown por post.
É legal arquivar posts de outra pessoa no Bluesky?
O conteúdo do Bluesky é público por padrão, mas arquivar posts de outro usuário levanta questões éticas e legais. Os Termos do AT Protocol permitem uso pessoal de arquivamento. Sempre respeite direitos autorais, não republique sem permissão e siga as diretrizes da comunidade Bluesky.
O que acontece com meus posts do Bluesky se meu PDS fechar?
Se seu Personal Data Server fechar, sua conta e posts ficam inacessíveis, a menos que você tenha migrado para um novo PDS ou exportado seus dados. O AT Protocol suporta migração de conta, mas você deve iniciá-la antes do PDS sair do ar. Exportações regulares são o único backup garantido.
Conclusão
A falta de exportação nativa do Bluesky é uma característica de seu design descentralizado, não um descuido. O AT Protocol torna seus dados mais portáteis do que qualquer plataforma proprietária — mas a portabilidade exige que você realmente a use. Escolha um dos quatro métodos acima, execute sua primeira exportação hoje e configure um job recorrente para manter o arquivo atualizado. Os posts que você escreveu em 2024 vão agradecer em 2030.
Arquive threads do Bluesky para Markdown — automaticamente
O ThreadGrab exporta threads do Bluesky, X Articles e issues do LinkedIn Newsletter para Markdown limpo. Um comando, saída portátil, sem lock-in.
Experimente o ThreadGrab →Fontes: Documentação do AT Protocol, Bluesky Jetstream no GitHub. Exemplos de código verificados com o SDK Python atproto v0.0.59.