# 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 a partir da imagem de preservação quando ela existe e, nos 69 itens sem ela, do `thumbnail/` do próprio DSpace. 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.991** | ✅ 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.