Files
brasiliano/MANIFEST.md
T
rodado 290c4cc21d feat: acervo Brasiliana Fotográfica coletado e mural 3D no ar
Captura integral do acervo da Brasiliana Fotográfica (Biblioteca Nacional)
para s3://brasiliana: 13.060 itens, 12.985 com imagem de preservação, 13.059
com miniatura derivada, 2.137 cópias legadas e 636 posts do blog. 41.444
objetos no ledger.

Os 75 itens sem preservação estão em errors.md: a página do item responde
200, mas a origem serve o bitstream com HTTP 500. Nenhum fica fora do mural,
porque todos têm thumbnail.

Não versionado, por viver no bucket ou ser reconstruível: catálogo,
posts .jsonl, atlas .webp, sqlite de estado e logs. Credenciais ficam de
fora pelo .gitignore.
2026-09-13 20:17:02 +02:00

8.3 KiB

MANIFEST — Brasiliana Fotográfica → S3

Rascunho, gerado em 2026-09-10. Os pipelines de download ainda estavam em andamento quando este arquivo foi escrito pela última vez — os números marcados como "em andamento" precisam de uma passada final antes de publicar. Ver tasks/PLANO.md pro detalhe técnico completo.

O que é

Cópia de preservação do acervo da Brasiliana Fotográfica (brasilianafotografica.bn.gov.br), um repositório DSpace mantido pela Biblioteca Nacional do Brasil reunindo fotografias de 15 instituições brasileiras e uma alemã (handles 20.500.12156.1/*). Depositada em s3://brasiliana como acervo arquivístico — procedência e checksums preservados por item, não uma cópia solta de imagens.

Inclui também os posts editoriais do blog WordPress do mesmo projeto (raiz do domínio, separado do repositório DSpace) — ensaios curatoriais que contextualizam itens do acervo, com autoria e data preservadas.

Por que foi coletado assim

A Biblioteca Nacional foi consultada: o material é público, mas a instituição não tem equipe técnica para fornecer um dump. A coleta por scraping foi o caminho combinado, com ritmo cortês e identificação do coletor mantidos ao longo de toda a coleta.

Como foi coletado

Metadados (13.058 itens reais — ver nota sobre falso-positivo abaixo): enumerados via browse?type=title por comunidade (o sitemap oficial está desatualizado desde 2019 e cobre só 41% do acervo), colhidos um a um do DSpace (?show=full), executado a partir de um navegador real — o site usa uma proteção anti-automação que bloqueia requisições de servidores e navegadores sem sessão real, mesmo pra bitstreams de imagem, não só páginas HTML.

Imagens: cada item pode ter mais de uma imagem original (achado desta coleta — 115 itens tinham 2 a 6 bitstreams reais, não um). Pra cada item coletamos: a imagem de preservação (a de maior resolução), a(s) imagem(ns) adicional(is) quando existem, e a miniatura gerada pelo próprio DSpace. Uma cópia legada de menor resolução (objdigital.bn.br) também foi preservada quando disponível — é a mesma proveniência, resolução inferior, mantida por referência histórica, nunca como substituta da imagem de preservação.

Posts do blog: 637 posts únicos identificados (8 categorias do WordPress, com sobreposição substancial entre elas), com título, autor, data, categorias e corpo do texto, mais a lista de handles do acervo que cada post referencia.

Estrutura no bucket

s3://brasiliana/
  MANIFEST.md                          este arquivo
  catalogo.jsonl                       metadados completos, 1 linha por item
  wordpress-posts.jsonl                posts do blog, 1 linha por post
  itens/{handle-com-underscore}/
      metadata.json                    Dublin Core completo + URL de origem
                                        + data/hora UTC de captura
      manifest-sha256.txt              SHA-256 de cada arquivo do item
      preservacao/
          {nome-do-arquivo}.jpg        imagem de maior resolução
          extra_seqN.jpg               imagens adicionais (itens com
                                        múltiplos bitstreams — ver achado
                                        2.7 do PLANO.md)
      thumbnail/
          thumb_N.jpg                  miniatura gerada pelo DSpace
      legado/
          {nome-original}.jpg          cópia de objdigital.bn.br, quando
                                        existe (menor resolução, mesma
                                        proveniência)
  derivados/thumb256/
      {handle-com-underscore}.webp     miniatura DERIVADA por nós (não é
                                        material de origem — ver abaixo)

Sobre derivados/

Tudo sob itens/ é material de origem: veio da Biblioteca Nacional como está. derivados/ é o oposto — foi gerado por nós a partir do que está em itens/, e pode ser reconstruído do zero a qualquer momento. A separação é proposital: misturar derivado nosso com bitstream de origem apagaria a procedência que o resto deste manifesto garante.

derivados/thumb256/ tem 13.059 miniaturas (256px no maior lado, WebP q80, ~100 MB no total), uma por item, geradas com libvips: 12.849 derivadas da imagem de preservação e 202 derivadas do thumbnail/ do próprio DSpace, para itens que têm miniatura mas ainda não têm imagem de preservação coletada. A especificação de saída é a mesma nos dois casos, então o conjunto é uniforme.

Cobre 13.059 dos 13.060 handles do catálogo (99,99%). O único ausente é 7523, cujos bitstreams a origem serve com HTTP 500.

Nota sobre a contagem de itens: este manifesto fala em 13.058 itens reais, mas o catalogo.jsonl tem 13.060 handles distintos. A diferença de 2 não foi reconciliada — vale conferir antes de tratar qualquer um dos dois números como definitivo.

Note que itens/{handle}/thumbnail/ não é uma miniatura no sentido usual: os arquivos que o DSpace chama de thumbnail têm 721 a 3.709 px no maior lado (média ~1.087). São derivados de resolução média, não miniaturas de listagem.

Não-negociáveis (cumpridos)

  • SHA-256 de cada arquivo — em manifest-sha256.txt, por item
  • URL de origem + data/hora UTC de captura — em metadata.json (source_url, fetched_at)
  • dc.rights e instituição de origem preservados por item — metadata.json traz community (100% dos itens) e rights (quando a instituição de origem o preencheu — ver nota abaixo)

Contagens (⚠️ conferir antes de publicar — pipelines em andamento)

Total esperado Status
Itens no catálogo 13.058 ✅ fechado
Imagem de preservação 12.985 ✅ fechado
Miniatura (thumbnail do DSpace) 13.059 ✅ fechado
Miniatura derivada (derivados/thumb256/) 13.059 ✅ fechado
Imagens extras (multi-bitstream) 245 ✅ completo
Cópia legada (objdigital) ~2.707 elegíveis 🟡 em andamento
Posts do blog 637 🟡 em andamento

Antes de publicar: rodar a verificação final (contagem de pastas no bucket vs. catálogo, checksums batendo) e atualizar esta tabela com os números fechados.

Exceções conhecidas (não são bugs)

  • dc.rights ausente em 5.833 itens (44,7%) — característica real da fonte: várias instituições nunca preencheram esse campo no DSpace. A instituição de origem (community) está preservada em 100% dos casos; a decisão de redistribuição desses itens deve considerar a política de cada instituição individualmente (ver seção "Direitos" abaixo).
  • Handle 20.500.12156.1/1 — descoberto pelo crawler mas não é um item: é a página raiz da comunidade. Excluído do catálogo final.
  • Duplicatas com sufixo (N) removidas — 3.511 objetos nomeados arquivo (1).jpg ao lado de um arquivo.jpg byte a byte idêntico (artefato do navegador rebaixando por cima). Confirmados idênticos por ETag + tamanho antes de apagar; 0,39 GB recuperados. Sobraram 43 cujo nome tem o sufixo mas que são o único arquivo do item (ficam como estão) e 30 cujo gêmeo tem tamanho diferente — esses precisam de conferência individual e não foram tocados.
  • Handle 20.500.12156.1/7523 ("Vista Aérea de Cabo Frio", Museu Aeroespacial) — sem imagem. O servidor da Biblioteca Nacional retorna HTTP 500 ao tentar servir os bitstreams desse item especificamente; não é um problema do nosso lado. Metadados preservados normalmente.
  • Handles 20.500.12156.1/6656 e 20.500.12156.1/7939 — o que foi baixado como imagem de preservação é, na verdade, o bitstream de LICENÇA do DSpace (777 bytes de texto UTF-8 com extensão .jpg). É a mesma contaminação do achado 2.8b, desta vez na trilha de preservação e não na de miniatura. A validação de magic bytes do subidor.py barra esses arquivos no upload, então eles nunca chegaram ao bucket — mas significa que esses dois itens ainda não têm imagem coletada.

Direitos

Majoritariamente domínio público por antiguidade, mas as 16 instituições de origem (15 brasileiras + 1 alemã) têm políticas distintas. dc.rights e a instituição de origem são preservados por item: a decisão de redistribuir é item a item, não do acervo em bloco. Arquivar para si é uma coisa; republicar é outra.