2025-03-16 03:11:34 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-01-22 16:51:06 -05:00
2024-12-16 22:48:26 +00:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 03:11:34 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2024-12-16 22:48:26 +00:00
2025-01-07 14:04:50 -05:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00
2025-03-16 02:25:15 -04:00

📚 Calibre-Web-Automated-Book-Downloader

Calibre-Web Automated Book Downloader

An intuitive web interface for searching and requesting book downloads, designed to work seamlessly with Calibre-Web-Automated. This project streamlines the process of downloading books and preparing them for integration into your Calibre library.

✨ Features

  • 🌐 User-friendly web interface for book search and download
  • 🔄 Automated download to your specified ingest folder
  • 🔌 Seamless integration with Calibre-Web-Automated
  • 📖 Support for multiple book formats (epub, mobi, azw3, fb2, djvu, cbz, cbr)
  • 🛡️ Cloudflare bypass capability for reliable downloads
  • 🐳 Docker-based deployment for quick setup

🖼️ Screenshots

Main search interface Screenshot

Details modal Screenshot placeholder

Download queue Screenshot placeholder

🚀 Quick Start

Prerequisites

Installation Steps

  1. Get the docker-compose.yml:

    curl -O https://raw.githubusercontent.com/calibrain/calibre-web-automated-book-downloader/refs/heads/main/docker-compose.yml
    
  2. Start the service:

    docker compose up -d
    
  3. Access the web interface at http://localhost:8084

⚙️ Configuration

Environment Variables

Application Settings

Variable Description Default Value
FLASK_PORT Web interface port 8084
FLASK_DEBUG Debug mode toggle false
FLASK_HOST Web interface binding 0.0.0.0
INGEST_DIR Book download directory /cwa-book-ingest
UID Runtime user ID 1000
GID Runtime group ID 100
ENABLE_LOGGING Enable log file true

If logging is enabld, log folder default location is /var/log/cwa-book-downloader

Download Settings

Variable Description Default Value
MAX_RETRY Maximum retry attempts 3
DEFAULT_SLEEP Retry delay (seconds) 5
MAIN_LOOP_SLEEP_TIME Processing loop delay (seconds) 5
SUPPORTED_FORMATS Supported book formats epub,mobi,azw3,fb2,djvu,cbz,cbr
BOOK_LANGUAGE Preferred language for books en
AA_DONATOR_KEY Optional Donator key for Anna's Archive fast download API ``

If you change BOOK_LANGUAGE, you can add multiple comma separated languages, such as en,fr,ru etc.

AA

Variable Description Default Value
AA_BASE_URL Base URL of Annas-Archive (could be changed for a proxy) https://annas-archive.org
USE_CF_BYPASS Disable CF bypass and use alternative links instead true

If you are a donator on AA, you can use your Key in AA_DONATOR_KEY to speed up downloads and bypass the wait times. If disabling the cloudflare bypass, you will be using alternative download hosts, such as libgen or z-lib, but they usually have a delay before getting the more recent books and their collection is not as big as aa's. But this setting should work for the majority of books.

Network Settings

Variable Description Default Value
PORT Container external port 8084
HTTP_PROXY HTTP proxy URL ``
HTTPS_PROXY HTTPS proxy URL ``

For proxy configuration, you can specify URLs in the following format:

# Basic proxy
HTTP_PROXY=http://proxy.example.com:8080
HTTPS_PROXY=http://proxy.example.com:8080

# Proxy with authentication
HTTP_PROXY=http://username:password@proxy.example.com:8080
HTTPS_PROXY=http://username:password@proxy.example.com:8080

Custom configuration

Variable Description Default Value
CUSTOM_SCRIPT Path to an executable script that tuns after each download ``

If CUSTOM_SCRIPT is set, it will be executed after each successful download but before the file is moved to the ingest directory. This allows for custom processing like format conversion or validation.

The script is called with the full path of the downloaded file as its argument. Important notes:

  • The script must preserve the original filename for proper processing
  • The file can be modified or even deleted if needed
  • The file will be moved to /cwa-book-ingest after the script execution (if not deleted)

You can specify these configuration in this format :

environment:
  - CUSTOM_SCRIPT=/scripts/process-book.sh

volumes:
  - local/scripts/custom_script.sh:/scripts/process-book.sh

Volume Configuration

volumes:
  - /your/local/path:/cwa-book-ingest

Mount should align with your Calibre-Web-Automated ingest folder.

🏗️ Architecture

The application consists of two key services:

  1. calibre-web-automated-bookdownloader: Main application providing web interface and download functionality
  2. cloudflarebypassforscraping: Support service for handling Cloudflare-protected websites

🏥 Health Monitoring

Built-in health checks monitor:

  • Web interface availability
  • Download service status
  • Cloudflare bypass service connection

Checks run every 30 seconds with a 30-second timeout and 3 retries.

📝 Logging

Logs are available in:

  • Container: /var/logs/calibre-web-automated-bookdownloader.log
  • Docker logs: Access via docker logs

🤝 Contributing

Contributions are welcome! Feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Important Disclaimers

While this tool can access various sources including those that might contain copyrighted material (e.g., Anna's Archive), it is designed for legitimate use only. Users are responsible for:

  • Ensuring they have the right to download requested materials
  • Respecting copyright laws and intellectual property rights
  • Using the tool in compliance with their local regulations

Duplicate Downloads Warning

Please note that the current version:

  • Does not check for existing files in the download directory
  • Does not verify if books already exist in your Calibre database
  • Exercise caution when requesting multiple books to avoid duplicates

💬 Support

For issues or questions, please file an issue on the GitHub repository.

S
Description
No description provided
Readme MIT
76 MiB
v1.3.15
Latest
2026-09-02 21:12:52 +01:00
Languages
Python 76%
TypeScript 21.5%
Shell 1.8%
CSS 0.3%
Dockerfile 0.2%
Other 0.2%