Privacy Download


Privacy Downloader
Neste post eu apresento uma ferramenta em Python desenvolvida para coletar e baixar imagens a partir de URLs do domínio image.privacy.com.br. O foco do projeto é robustez, organização e automação, mantendo o código modular e fácil de manter.
Resumo rápido: o script valida URLs, decodifica metadados embutidos em Base64, normaliza nomes de arquivos, realiza downloads com retry automático e gera logs detalhados do processamento.
Objetivo do projeto
A ideia central é automatizar o download de imagens quando se tem listas grandes de URLs, evitando problemas comuns como:
URLs inválidas misturadas com válidas
Falhas temporárias de rede
Nomes de arquivos quebrados ou incompatíveis com o Windows
Downloads duplicados
Falta de rastreabilidade do que foi processado
O script resolve tudo isso em um fluxo único e previsível.
Arquitetura geral
O código foi dividido em blocos bem definidos:
Configurações globais
Utilitários de sessão e saída
Decodificação da URL (Base64)
Geração segura de nomes de arquivo
Download com verificação de conteúdo
Coleta de URLs (arquivo, CLI ou modo interativo)
Log final de execução
Essa separação facilita ajustes futuros e reutilização de partes do código.
Sessão HTTP resiliente
A função create_session() cria uma sessão requests.Session com:
Retry automático (códigos 429, 5xx)
Backoff exponencial
Headers personalizados simulando um navegador real
Isso reduz drasticamente falhas em downloads longos ou instáveis.
Decodificação da URL
Um dos pontos mais interessantes do script está na função: "decode_privacy_url()".
Ela:
Extrai o trecho Base64 presente na URL
Remove caracteres inválidos
Corrige o padding (=)
Decodifica o JSON embutido
A partir disso, o script consegue recuperar informações como:
bucket
key
Estrutura de edição da imagem
Esses dados são usados principalmente para gerar nomes de arquivo mais coerentes.
Normalização do nome do arquivo
A função get_filename_from_info() garante que:
O nome não contenha caracteres inválidos no Windows
Extensões ausentes sejam corrigidas
Prefixos desnecessários sejam removidos
Sempre exista um fallback (imagem_0001.jpg, por exemplo)
Isso evita erros silenciosos durante o salvamento.
Processo de download
O fluxo de download é direto, mas bem protegido:
Verifica se o arquivo já existe
Confere o status_code
Valida o Content-Type (somente imagens)
Salva o conteúdo em modo binário
Exibe o tamanho final do arquivo
Cada URL é processada individualmente, com controle de sucesso e falha.
Coleta de URLs
O script aceita URLs de três formas:
Argumentos via linha de comando
Arquivo de texto (--file)
Modo interativo, colando URLs diretamente no terminal
Somente URLs válidas do domínio correto são consideradas. O restante é descartado automaticamente.
Log de execução
Ao final, é gerado um arquivo:
Downloads/urls_processadas.txt
Contendo:
Total de URLs
Quantidade de sucessos
Quantidade de falhas
Lista numerada de todas as URLs processadas
Isso facilita auditoria e reprocessamento posterior.
Considerações finais
Este projeto prioriza:
Código limpo e legível
Tratamento defensivo de erros
Automação sem dependências desnecessárias
É uma base sólida para quem precisa trabalhar com grandes volumes de imagens, mantendo controle e previsibilidade no processo.
Se aquilo que você cria não tem moral, por que, então, deve respeitá-la?

