Arquive threads do X como Markdown
EN PT ID

Bluesky para Markdown 2026: Salve Posts como Markdown

10 de Agosto, 2026 · 10 min de leitura · Guia

O Bluesky é construído sobre o AT Protocol (“atproto”), e essa escolha o torna uma das plataformas sociais mais fáceis de exportar em 2026. Cada post público, thread e feed de autor é servido por uma API pública que retorna JSON limpo — sem conta, sem token e sem aperto de mão de rate limit para leituras básicas. Isso significa que “Bluesky para Markdown” não é um contorno de nicho; é um fluxo de trabalho normal e suportado.

Este guia mostra por que salvar posts do Bluesky como Markdown vale a pena, como funcionam os endpoints públicos do atproto e os caminhos mais rápidos para um arquivo local portátil — de um único curl a um script em lote que você pode rodar na sua timeline inteira.

Resumo rápido: o Bluesky expõe posts públicos por meio de public.api.bsky.app sem autenticação. Resolva um handle para um DID, busque o feed, converta o texto do record em Markdown e você terá uma cópia durável e pesquisável em segundos. É o mesmo padrão “capture o conteúdo, guarde o Markdown” que o ThreadGrab usa para o X — e funciona para o Bluesky também.

Por Que Salvar Posts do Bluesky como Markdown

O Bluesky é mais aberto do que a maioria das redes, mas aberto não significa permanente. Posts podem ser deletados, handles podem mudar, e um problema na conta ou na instância pode levar sua lista de leitura junto. Se um post importa — uma nota de pesquisa, uma thread útil, uma referência que você citará depois — a única cópia que você realmente controla é a que está no seu próprio disco.

Markdown é o formato certo para esse trabalho por três razões concretas:

Um screenshot preserva os pixels, não o conteúdo. O Markdown preserva as palavras, a estrutura, os links e os metadados — por isso a comunidade de arquivamento se padronizou nele.

Como Funciona a API Pública do Bluesky

O Bluesky roda sobre atproto, e os caminhos de leitura são deliberadamente públicos. Dois endpoints fazem quase todo o trabalho de arquivamento:

A URL base é https://public.api.bsky.app. A referência completa dos endpoints é publicada pelo Bluesky em docs.bsky.app, e o endpoint de feed documenta o formato exato da resposta. Não há etapa de login para conteúdo público: você resolve, busca e pronto. A resposta é JSON estruturado, então convertê-la para Markdown são poucas linhas de código em qualquer linguagem.

Observação: você só precisa de uma senha de app (um token) se quiser ler posts privados ou executar ações em uma conta. Arquivamento público puro nunca toca em autenticação, o que também torna fácil automatizar com scripts em um servidor headless ou dentro de um cron job.

Método 1 — Salve um Único Post com curl

A maneira mais rápida de capturar um post do Bluesky como Markdown é chamar a API pública diretamente. Primeiro, resolva o handle do autor para um DID:

curl "https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=bsky.app"

A resposta retorna o identificador persistente:

{ "did": "did:plc:z72i7hdynmk6r22z27h6tvur" }

Agora busque o feed do autor, mantendo apenas os campos que você quer. Uma linha curta em Python transforma o JSON em bullets Markdown limpos:

import json, urllib.request
did = "did:plc:z72i7hdynmk6r22z27h6tvur"
url = ("https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed"
       "?actor=" + did + "&limit=5")
data = json.load(urllib.request.urlopen(url))
for item in data["feed"]:
    rec = item["post"]["record"]
    print("## " + rec.get("createdAt", "")[:10])
    print(rec.get("text", "") + "\n")

Execute e você obtém um bloco Markdown legível por post — a data como título, o texto como parágrafo. Esse é todo o fluxo de trabalho para um salvamento manual único.

Método 2 — Arquive uma Timeline Inteira em Lote

Para os posts recentes de uma conta inteira, adicione paginação. getAuthorFeed retorna um cursor que você passa de volta para buscar a próxima página, então um pequeno loop captura tudo sem perder nada:

import json, urllib.request, urllib.parse
did = "did:plc:z72i7hdynmk6r22z27h6tvur"
cursor = None
for page in range(3):
    params = {"actor": did, "limit": 50}
    if cursor:
        params["cursor"] = cursor
    url = ("https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?"
           + urllib.parse.urlencode(params))
    data = json.load(urllib.request.urlopen(url))
    for item in data.get("feed", []):
        rec = item["post"]["record"]
        print("## " + rec.get("createdAt", "")[:10] + "\n"
              + rec.get("text", "") + "\n")
    cursor = data.get("cursor")
    if not cursor:
        break

Cada execução adiciona os posts a um arquivo Markdown, e o cursor garante que você veja todas as páginas. Rode semanalmente dentro de um cron job e você terá um arquivo contínuo e pesquisável de qualquer conta do Bluesky que você siga.

Método 3 — ThreadGrab para Markdown Multiplataforma

O caminho da API é poderoso, mas exige trabalho manual. Se você quiser o mesmo resultado para threads do X, X Articles de texto longo e posts do Bluesky sem escrever e manter scripts, o ThreadGrab envolve o padrão “capture o conteúdo, guarde o Markdown” em uma única ferramenta. Ele converte posts sociais em Markdown limpo, baixa mídias vinculadas para o seu próprio armazenamento e lhe dá uma biblioteca portátil que não depende da API ou do preço de uma única plataforma.

Isso importa quando seu arquivo abrange várias plataformas. Uma abordagem de API com script único funciona lindamente para uma conta do Bluesky; uma biblioteca mista de X e Bluesky se beneficia de uma ferramenta que padroniza o formato de saída em todos os lugares.

Qual Método Você Deve Usar?

CenárioMelhor opçãoPor quê
Salvamento manual únicocurl + resolveHandleSem setup, segundos para rodar
Conta / timeline inteiraScript paged getAuthorFeedPaginação com cursor, zero autenticação
Arquivo semanal contínuoCron automatizado + arquivo MarkdownHistórico contínuo e pesquisável
Biblioteca mista X + BlueskyThreadGrabMarkdown padronizado entre plataformas

Não existe uma única resposta certa. Comece com o one-liner curl para provar o conceito e depois evolua para um script paginado ou para o ThreadGrab conforme seu arquivo cresce.

Construindo um Arquivo Bluesky Portátil

Qualquer que seja o método que você escolher, mantenha a saída estruturada para que continue útil. Uma convenção simples vence uma complicada:

bluesky-archive/
  profile.json
  2026-08-05-bsky-app.md
  2026-08-04-group-chats-100.md
  media/
    image-01.jpg

Nomeie cada arquivo pela data e slug do post, armazene o DID e o horário de captura em um pequeno profile.json junto e mantenha os links de imagem relativos para que a pasta espelhe limpa em qualquer lugar. Como tudo é texto simples mais arquivos, o arquivo é portátil entre repos git, drives na nuvem e discos locais — sem servidor do Bluesky necessário para lê-lo.

Conclusão

O design atproto do Bluesky é uma vantagem genuína para arquivamento. Posts públicos estão a uma chamada de API pública de distância do Markdown limpo — sem autenticação, sem paywall, sem ferramenta de exportação proprietária. Se você captura um único post com curl, pagina uma timeline inteira com um script curto ou usa o ThreadGrab para manter X e Bluesky em uma única biblioteca padronizada, o resultado é o mesmo: conteúdo que você realmente controla.

Posts desaparecem, handles mudam, algoritmos seguem em frente. O Markdown que você salvou hoje é a cópia que você ainda poderá ler no ano que vem — e a cópia que você pode alimentar em qualquer ferramenta, LLM ou app de notas que vier depois.

Guarde os posts que importam. O ThreadGrab converte threads do X e posts do Bluesky em Markdown limpo, baixa as mídias para o seu próprio disco e mantém sua biblioteca multiplataforma portátil — para que o conteúdo que você valoriza nunca fique preso em uma única rede.

Experimente o ThreadGrab

FAQ

Posso salvar posts do Bluesky como Markdown?

Sim. A API pública atproto do Bluesky serve os posts como JSON simples sem autenticação, então você pode buscar um post, uma thread ou um feed completo do autor e formatá-lo como Markdown na sua própria máquina. Ferramentas dedicadas e extensões de navegador também renderizam posts do Bluesky como Markdown com um clique.

A API do Bluesky exige conta ou token?

Para posts públicos, não. O endpoint público atproto public.api.bsky.app permite resolver um handle para um DID e buscar feeds de autores ou posts individuais sem fazer login. Você só precisa de uma senha de app se quiser ler conteúdo privado ou agir na conta.

Como obtenho um post do Bluesky como Markdown?

O método mais simples é substituir o domínio na URL do post ou chamar a API pública diretamente. Por exemplo, resolva um handle com com.atproto.identity.resolveHandle e depois chame app.bsky.feed.getAuthorFeed ou getPosts e converta o texto do record em Markdown. Um script local pode automatizar isso para cada post que você quiser guardar.

O ThreadGrab é compatível com o Bluesky?

Sim. O ThreadGrab é construído em torno da conversão de conteúdo social em Markdown limpo e do download de mídias vinculadas para o seu próprio armazenamento. Ele suporta o mesmo fluxo para posts do Bluesky como faz para threads do X e posts de texto longo, então você termina com uma biblioteca Markdown portátil e pesquisável em várias plataformas.

Por que salvar posts do Bluesky como Markdown em vez de screenshots?

Markdown é texto simples, então é pesquisável, versionável em git, indexável por um LLM e legível em qualquer app de notas. Um screenshot é uma imagem: você não pode fazer Ctrl+F, não pode diffar e não pode colá-lo em um fluxo de IA. O Markdown preserva o texto, a estrutura e os links enquanto continua portátil e à prova de futuro.