Skip to main content

libert

CLI instantânea para download de livros do welib — o "yt-dlp dos livros": cola o link (ou lista), e o livro chega em segundos.

Instale via PyPI:

pip install libert

Uso rápido

libert <URL_DO_WELIB>
libert -f pdf <URL_DO_WELIB>
libert --format epub <URL_DO_WELIB>
libert -l links.txt
libert --list ./meus-links.txt
libert            # abre o menu interativo

Exemplo:

libert https://pt.welib.st/md5/55d053185d2b4871c7a0549b997135f9

Termux / Cloudflare travando tudo

Quando o welib desafia o Cloudflare em todas as tentativas (comum em redes IPs compartilhadas/celular), o libert acusa exatamente isso e aceita os cookies do seu próprio navegador:

  1. No navegador (desktop ou Android), abra https://welib.org uma vez (passa o "Just a moment..." normalmente);
  2. Exporte os cookies para cookies.txt — formato Netscape (extensões tipo Cookie-Editor / Get cookies.txt) ou só as linhas nome=valor (ex: cf_clearance=...);
  3. Rode:
libert --cookies cookies.txt <URL_DO_WELIB>
libert --cookies cookies.txt -l links.txt

No Termux o libert já usa perfil de navegador Android automaticamente.

Fallbacks

  • IPFS em corrida (race) — 10+ gateways disparados em paralelo; o primeiro que devolver bytes reais (não HTML) ganha o download;
  • libgen — link direto do file.php, último recurso.

Como fica instantâneo (v0.3)

O libert resolve o arquivo sem esperar, por rotas paralelas — a primeira que responder vale o download:

  1. CDN direta (partner) — encontra o js-partner-download-link (📚 Download) dentro das páginas slow_download/fast_download e baixa o arquivo original imediatamente (a espera de minutos não existe: o link já vem pronto no HTML); com validação anti-livro-diferente (o md5 do livro precisa estar no URL do CDN);
  2. IPFS em corrida (race) — 10+ gateways disparados em paralelo; o primeiro que devolver bytes reais (não HTML) ganha o download;
  3. libgen — link direto do file.php, último recurso.

Extras de robustez:

  • Sessão cloudscraper aquecida passa o desafio Cloudflare sem browser; challenge → retry espelhado e escalonado automaticamente.
  • Rate-limit não aborta: o libert respira (8s → 20s) e resolve de novo, sozinho — você não precisa re-executar o comando.
  • Lote em pipeline: enquanto baixa o livro atual, o próximo já está sendo resolvido em background. Zero segundo morto entre livros; sem pausa fixa de 3s e sem "educar" o servidor quando ele não reclama.
  • Link partner que vira HTML (token expirado) é re-resolvido na hora.
  • Validação de conteúdo: PDF/EPUB/MOBI checados por magic bytes; se o servidor devolver HTML, nada é salvo.
  • URLs de download coladas direto (.../slow_download/<md5>/...) viram página do livro automaticamente.
  • Espelhos automáticos (welib.org, welib.st, pt/en/es.welib.st).
  • Arquivos salvos em ~/Downloads (Linux) ou ~/storage/downloads (Termux); nunca sobrescreve (adiciona (1), (2)…).
  • Barra de progresso com tamanho, % e velocidade.

Menu interativo (libert sem argumentos)

=== libert - Gerenciador de Downloads do welib ===

  [1] Baixar um único livro (inserir URL)
  [2] Baixar múltiplos livros (colar lista de URLs)
  [3] Baixar a partir de arquivo de texto (ex: links.txt)
  [0] Sair

Escolha uma opção (0-3):

Lote (batch)

[1/3] https://pt.welib.st/md5/aaa...
[+] Livro: "Nome do Livro"
[+] Link direto do arquivo resolvido.
                     Baixando Nome do Livro.pdf ━━━━━ 100% ...
[+] Concluído em 6.4s → ~/Downloads/Nome do Livro.pdf
[2/3] https://pt.welib.st/md5/bbb...
...
[+] Resumo: 3 baixado(s) com sucesso, 0 falha(s) de 3.

Arquivo .txt de exemplo (links.txt):

# meus livros
https://pt.welib.st/md5/55d053185d2b4871c7a0549b997135f9
https://welib.org/md5/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Linhas vazias e # são ignoradas; texto extra antes da URL é aceito.

Opções

libert [-f FORMATO] [-o PASTA] [-l ARQUIVO.txt] [URL]
libert -V

Notas

  • O welib limita ritmo por IP; o libert já respeita isso de forma adaptativa (sem pausas fixas) e recupera sozinho quando esbarra no limite.
  • Formatos conversão (convert/epub, etc.) usados quando você pede -f.

Desenvolvimento

pip install -e .
python -m build

Licença

MIT

Metadata

Release files for libert 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for libert 0.3.1
File Size Uploaded Provenance
libert-0.3.1.tar.gz 18.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for libert 0.3.1
File Interpreter ABI Platform
libert-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 36.7 kB

Release files / libert-0.3.1.tar.gz

Download URL libert-0.3.1.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f681831ec9bdde6f7ab6cc75a73619d3ab52546d8baa1727ca33894677e964c7
BLAKE2b-256 checksum
How to use checksums
68330840271b6d895337b85ef9ed2edc4aeebe43ec3143acfea53847cdd6feed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / libert-0.3.1-py3-none-any.whl

Download URL libert-0.3.1-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2130744d6e49724172bd11d403274642ea9b5ce4c2439a8cdfa16d466d54dab1
BLAKE2b-256 checksum
How to use checksums
fe7641f3f4e5e8842b1faf5a74f67dbbb2c189bb00d2594536c20282ed9f1d03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Security for libert 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page