mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-09-24 22:05:20 +01:00
193 lines
7.9 KiB
Markdown
193 lines
7.9 KiB
Markdown
# 📚 Calibre-Web-Automated-Book-Downloader
|
|
|
|

|
|
|
|
An intuitive web interface for searching and requesting book downloads, designed to work seamlessly with [Calibre-Web-Automated](https://github.com/crocodilestick/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
|
|
|
|

|
|
|
|

|
|
|
|

|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Prerequisites
|
|
|
|
- Docker
|
|
- Docker Compose
|
|
- A running instance of [Calibre-Web-Automated](https://github.com/crocodilestick/Calibre-Web-Automated) (recommended)
|
|
|
|
### Installation Steps
|
|
|
|
1. Get the docker-compose.yml:
|
|
|
|
```bash
|
|
curl -O https://raw.githubusercontent.com/calibrain/calibre-web-automated-book-downloader/refs/heads/main/docker-compose.yml
|
|
```
|
|
|
|
2. Start the service:
|
|
|
|
```bash
|
|
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:
|
|
```bash
|
|
# 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
|
|
|
|
```yaml
|
|
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](LICENSE) file for details.
|
|
|
|
## ⚠️ Important Disclaimers
|
|
|
|
### Copyright Notice
|
|
|
|
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.
|