Files
WattpadDownloader/README.md
T

58 lines
2.8 KiB
Markdown
Raw Normal View History

2025-05-27 17:02:19 -04:00
WattpadDownloader ([Demo](https://wpd.my/))
2023-12-29 03:44:46 +00:00
---
Straightforward, Extendable WebApp to download Wattpad Books as EPUB Files.
2024-11-09 03:27:09 +05:30
![image](https://github.com/user-attachments/assets/b9d87d6b-5302-4561-98b0-d7f95bff9f04)
2023-12-30 19:10:19 +05:30
Stars ⭐ are appreciated. Thanks!
## Features
2024-12-10 15:29:19 +00:00
- ⚡ Lightweight Frontend.
2024-07-08 12:59:49 +00:00
- 🪙 Supports Authentication (Download paid stories from your account!)
2023-12-30 19:10:19 +05:30
- 🌐 API Support (Visit the `/docs` path on your instance for more.)
2024-12-10 15:29:19 +00:00
- 🐇 Fast Generation
- 🗃️ Caching, Ratelimit handling
2023-12-30 19:10:19 +05:30
- 🐳 Docker Support
2024-12-10 15:29:19 +00:00
- 🏷️ Generated books contain metadata, supported by Calibre and other E-Book Software.
- 📖 Plays well with E-Readers. (Send2Kindle, KOReader, ReMarkable, KOBO, Calibre Reader...)
2023-12-30 19:10:19 +05:30
- 💻 Easily Hackable. Extend with ease.
2024-12-10 15:29:19 +00:00
Still not convinced? Take a look some [sample downloads](./samples/).
2023-12-30 19:10:19 +05:30
## Set Up
1. Clone the repository: `git clone https://github.com/TheOnlyWayUp/WattpadDownloader/ && cd WattpadDownloader`
2. Build the image: `docker build . -t 'wp_downloader'` (This takes about 2 Minutes)
3. Run the Container: `docker run -d -p 5042:80 wp_downloader`
That's it! You can use your instance at `http://localhost:5042`. API Documentation is available at `http://localhost:5042/docs`.
2024-12-01 00:13:22 +00:00
### Concurrent Requests
2024-12-01 00:15:03 +00:00
The file-based cache struggles with concurrent requests (discussed in TheOnlyWayUp/WattpadDownloader#2 and TheOnlyWayUp/WattpadDownloader#22). If you're downloading a large number of books concurrently, switch to the Redis cache. Assuming you've built the image already:
1. Fill the .env file. Localhost will not work in a docker container unless [`host.docker.internal`](https://docs.docker.com/desktop/features/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host) or a platform-specific variant is provided.
2024-12-01 00:13:22 +00:00
```
USE_CACHE=true
CACHE_TYPE=redis
REDIS_CONNECTION_URL=redis://username:password@host:port
```
2024-12-01 00:15:03 +00:00
2024-12-01 00:13:22 +00:00
2. Run the container and supply the .env file, `docker run -d -p 5042:80 --env-file .env wp_downloader`
Alternatively, if Redis is running on localhost
2. Modify your `.env` file, replacing `localhost` with `host.docker.internal`. `redis://localhost:6379` should become `redis://host.docker.internal:6379`. Then, start the container, `docker run -d -p 5042:80 --env-file .env --add-host host.docker.internal:host-gateway wp_downloader`
## Development
- Developers, ensure you have `wkhtmltopdf` available on your PATH.
- Run `wkhtmltopdf` on your terminal, if you see "Reduced Functionality", run [this script](https://raw.githubusercontent.com/JazzCore/python-pdfkit/b7bf798b946fa5655f8e82f0d80dec6b6b13d414/ci/before-script.sh) to install a fully featured compilation of `wkhtmltopdf.
2023-12-30 19:10:19 +05:30
---
My thanks to [aerkalov/ebooklib](https://github.com/aerkalov/ebooklib) for a fast and well-documented package.
2023-12-29 03:44:46 +00:00
---
<div align="center">
2026-01-07 14:18:47 -05:00
<p>TheOnlyWayUp © 2026</p>
2023-12-29 03:44:46 +00:00
</div>