Important
comick.io has ceased providing any media themselves. This project now targets multiple other platforms with the same feature set—thanks for sticking around!
The most versatile, feature-rich & customizable command-line tool to download webtoons (manhwa), manga, comics and light novels from mangataro.org, mangafire.to, bato.to, asuracomic.net, weebcentral.com, manganato.gg, comix.to & many others, and package them into PDF, EPUB, CBZ, or raw chapter bundles—complete with light-novel aware text handling, intelligent image processing, resumable downloads, scanlation group prioritization, and optional chapter/file-size splitting.
- 🚀 Features
- 🛠️ Requirements
- 🌐 Supported Sites
- 🧰 Installation
- 🚀 Usage
- ⚙️ Options
- 🔐 Cookie Setup
- 📖 Examples
- 💡 Tips & Tricks
- 📁 Output Structure
- ⚖️ Disclaimer
- 🤝 Contributing
- 🙏 Acknowledgements
- 📄 License
- 📥 Flexible Chapter Selection
Download specific chapters, ranges (1-5), or lists (1,3,5-7). - 🏷️ Scanlation Group Control
Prioritize your favorite scanlation group(s), or choose by highest upvotes. - 🖼️ Smart Page Processing
Resize, scale, recombine, and compress image chapters. Webtoon strips stay continuous; page-style scans keep their page layout. - 🚫 No-Processing Mode
Package raw pages as-is into PDF/EPUB/CBZ (skip all resizing/recombining/scaling) via--no-processing. - 📁 Multiple Formats
Export as PDF, fixed-layout EPUB, vertical-scroll EPUB, or CBZ. - 📚 Light-Novel Friendly
Detects prose chapters automatically—EPUB embeds true XHTML pages, PDF outputs selectable text, CBZ renders text blocks as images, and--format nonesaves plain.txtchapters. - 🧼 Clean Chapter Content
Automatically strips Mangataro boilerplate (group avatars, site banners, copyright notices) so only true page content lands in your book. - 🔄 Resumable Downloads
Automatically picks up where it left off if interrupted. - ✂️ Book Splitting
Split large downloads by file size (e.g.,400MB) or chapter count (e.g.,10ch). - 💾 Keep Originals
Optionally retain raw images and per-chapter files.
- Python
- Officially supported: 3.8+
- Best-effort (tested): 3.7 (may require building Pillow from source on some platforms)
- Not supported: 3.6 and Python 2.x
- OS: macOS, Linux, Windows
- Python packages (installed via requirements.txt)
- beautifulsoup4
- cloudscraper
- lxml
- Pillow
- pypdf
- requests
- Notes for macOS (Apple Silicon), Python 3.7 only:
- Building Pillow from source may require system libraries. If you see build errors,
install via Homebrew:
- brew install jpeg-turbo libpng freetype libtiff webp little-cms2 zlib
- Ensure Xcode command line tools are installed: xcode-select --install
- Building Pillow from source may require system libraries. If you see build errors,
install via Homebrew:
Feature support by Python version
- Legend:
- ✅ Supported
⚠️ Supported with caveats (see notes)- ❌ Not supported
| Python | EPUB (page) | EPUB (vertical) | CBZ | Resume/Restore | Split (size/ch) | Keep images | Group priority/mix-by-upvote | Cloudscraper | lxml parser | |
|---|---|---|---|---|---|---|---|---|---|---|
| 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3.11 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ (fallback to html.parser if lxml unavailable) |
| 3.6 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 2.7 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Notes:
- Cloudscraper is optional. If it’s not available or fails to initialize, the downloader automatically falls back to requests.Session.
- The HTML parser prefers lxml if installed, and falls back to the built-in html.parser.
- On macOS (Apple Silicon), Python 3.7 may need system libraries to build Pillow.
git clone https://github.com/zzyil/AIO-Webtoon-Downloader.git
cd AIO-Webtoon-Downloader
python3 -m pip install -r requirements.txtFor all supported sites, check docs/SUPPORTED_SITES.MD
| Site | Notes | Integration Status |
|---|---|---|
| asuracomic.net | Alternative URLs: asurascans.net | recent check 11.25.25 ✅ |
| Atsumaru / atsu.moe | recent check 11.26.25 ✅ | |
| BATO.to | See mirror list | recent check 11.25.25 ✅ |
| comix.to | Supports multiple scanlation groups | recent check 11.26.25 ✅ |
| fanfox.net | Mirrors: mangafox.la and mangahere.cc | recent check 11.26.25 ✅ |
| flamecomics.xyz | recent check 11.25.25 ✅ | |
| galaxymanga.io | recent check 11.25.25 ✅ | |
| kagane.org | DRM-protected, requires Widevine .wvd file. See docs/Widevine.md |
currently untested due to .wvd requirement |
| kingofshojo.com | recent check 11.25.25 ✅ | |
| mangabuddy.com | See MangaBuddy mirrors | recent check 11.27.25 ✅ |
| mangadex.org | Supports scanlation group selection | recent check 11.25.25 ✅ |
| mangafire.to | Supports multiple languages | recent check 11.25.25 ✅ |
| mangahub.io | recent check 11.25.25 ✅ | |
| MangaKakalot / MangaNato | See mirror list | recent check 11.25.25 ✅ |
| MangaPark | See mirror list | |
| mangataro.org | Supports scanlation group selection | recent check 11.25.25 ✅ |
| manhuafast.net | Mirror: manhuafast.com | recent check 11.25.25 ✅ |
| manhuaplus.com | recent check 11.25.25 ✅ | |
| manhuaus.com | recent check 11.25.25 ✅ | |
| razure.org | light-novel support | recent check 11.25.25 ✅ |
| utoon.net | recent check 11.26.25 ✅ | |
| violetscans.org | recent check 11.26.25 ✅ | |
| weebcentral.com | Supports scanlation group selection | recent check 11.27.25 ✅ |
python3 aio-dl.py [OPTIONS] COMIC_URLRun python3 aio-dl.py --help for the full option list.
| Option | Description | Default |
|---|---|---|
COMIC_URL |
URL of the manga’s main page (e.g. https://awesome-webtoon.url/series/name) |
required |
--cookies STRING |
HTTP cookie string for restricted content (e.g. key1=val1; key2=val2) |
"" |
--group STRING... |
Preferred scanlation groups (comma-separated or multiple args). | [] |
--mix-by-upvote |
When multiple --group entries exist, pick the version with the highest upvotes among them. |
False |
--no-partials |
Skip fractional chapters (e.g. 1.5). | False |
--chapters STRING |
Chapter filter: all, single (5), range (1-10), or list/ranges (1,3,5-7). |
all |
--language STRING |
Language code (e.g. en, ja). |
en |
--format {pdf,epub,cbz,none} |
Output format. | epub |
--epub-layout {page,vertical} |
EPUB layout: page (fixed), vertical (scroll). |
vertical |
--width INT |
Base image width (px). Defaults vary by format/layout. | auto |
--aspect-ratio STRING |
Target W:H ratio (e.g. 4:3 or 2.5). Not used for PDF. |
auto |
--quality INT |
JPEG quality % (1–100). |
85 |
--scaling INT |
Final image scale % (1–100). |
100 |
--no-processing |
Skip all image post-processing (resize, recombine, scaling). Build formats directly from the raw downloaded images. | False |
--split STRING |
Split by size (400MB) or chapters (10ch). |
None |
--restore-parameters |
Reuse saved processing settings (for format-only reassembly). | False |
--keep-images |
Retain raw downloaded images under comics/<Title>/Chapter_<n>/. |
False |
--keep-chapters |
Save each chapter as a separate file (.pdf, .epub, or .cbz). |
False |
--no-cleanup |
Do not delete the temporary directory (tmp_<hid>/) after completion. |
False |
-v, --verbose |
Enable detailed logging. | False |
-d, --debug |
Enable debug-level logging (image processing details). | False |
If authentication is required, export your cookies as a single quoted string:
export COOKIES='session_token=…; another_cookie=…'Then run:
python3 aio-dl.py --site mangataro --cookies "$COOKIES" \
"https://awesome-webtoon.url/series/name"-
Page-layout EPUB, chapters 1–2, preferred group Asura, verbose:
python3 aio-dl.py \ --group Asura \ --chapters "1-2" \ --format epub \ --epub-layout page \ --verbose \ "https://awesome-webtoon.url/series/name"
-
Vertical EPUB, chapters 1–20, split every 5 chapters, verbose & debug:
python3 aio-dl.py \ --chapters "1-20" \ --format epub \ --epub-layout vertical \ --split 5ch \ --verbose --debug \ "https://awesome-webtoon.url/series/name"
-
CBZ, chapters 1–2, one chapter per file:
python3 aio-dl.py \ --chapters "1-2" \ --format pdf \ "https://awesome-webtoon.url/series/name"
-
CBZ, chapters 1–2, one chapter per file:
python3 aio-dl.py \ --chapters "1-2" \ --format cbz \ --keep-chapters \ "https://awesome-webtoon.url/series/name"
-
PDF, chapters 1–2, save each chapter separately:
python3 aio-dl.py \ --chapters "1-2" \ --format pdf \ --keep-chapters \ "https://awesome-webtoon.url/series/name"
-
Raw CBZ, chapters 1–50 (no resizing/recombining/scaling):
python3 aio-dl.py \ --chapters "1-5" \ --format epub \ --epub-layout page \ "https://awesome-webtoon.url/series/name"
-
Raw CBZ (pages copied as-is):
python3 aio-dl.py \ --chapters "1-50" \ --format cbz \ --no-processing \ "https://awesome-webtoon.url/series/name"
Here are some handy pointers to get the most out of your workflow:
-
🔄 Ongoing Series Updates
• Use--no-cleanupto keep your temporary data around and reuse the same settings.
• Run again whenever new chapters appear, only new content will be downloaded & processed. • You can use--restore-parametersto restore input parameters to exactly match the previous one. -
🗂️ Archiving Originals
• Add--keep-imagesto save every raw page undercomics/<Title>/Chapter_<n>/.
• Useful if you want to re-process images later (different layout, quality, etc.). -
🧾 Raw Packaging (No Processing)
• Use--no-processingto package pages exactly as downloaded into CBZ/EPUB/PDF.
• Skips resize/recombine/scaling; great if you prefer untouched originals inside the final file.
• Combine with--keep-chaptersto generate one raw file per chapter. -
📑 Precise Chapter Selection
• Use--chapters "1-20,21,23-100"to include exactly the chapters you want (skip fillers or extras).
• Supports single numbers, ranges, and comma-separated lists.
• Use--no-partialsto skip fractional chapters such as 1.5, 30.1 or other non decimal exclusive chapters in order to prevent duplicates within your final export. -
⚙️ Recover from Failures
• After a crash or network hiccup, rerun with--restore-parameters, which will restore all parameters except for your desired file format. (Please remember that PDFs don't adhere to aspect ratios the same way as EPUBs & CBZs do, so going from pdf to either of them isn't recommended, the other way around works fine.) -
🍏 Apple Books Friendly
• Apple Books can choke on massive EPUBs— personal recommendation: split into ~10-chapter chunks:--split 10ch.
• Alternatively, split by size:--split 200MB. -
📖 EPUB Layout Recommendations
• For standard e-readers (Kindle, Kobo):--epub-layout page.
• For continuous scroll (Apple Books, PocketBook):--epub-layout vertical. -
🎨 Control Output Quality & Size
•--quality 60to drop JPEG quality for smaller files.
•--scaling 80to downscale pages to 80% of the original processed size.
• Combine with--splitto keep individual file sizes manageable. -
🏷️ Best Scanlation Version
•--group "YourFavGroup"to prefer a specific scanlation team or even teams by using--group "YourFavGroup1, YourFavGroup2".
• Add--mix-by-upvoteto pick the highest-upvoted release among your chosen groups. -
🔍 Debugging & Verbose Logs
•-v/--verbosefor step-by-step progress.
•-d/--debugfor deep image-processing insights (resizing, recombining). -
📦 Per-Chapter Files
• Use--keep-chaptersto save each chapter as its own PDF/EPUB/CBZ alongside the main book.
- Temporary Data:
tmp_<hid>/run_params.json: Stores the processing settings for resume functionality.
- Final Files:
comics/- Named
<Title>[_Groups]_Ch_<start>-<end>.<format>(e.g.,My_Awesome_Comic_Asura_Ch_1-5.epub)
- Named
- Raw Images (if
--keep-imagesis used):comics/<Title>/Chapter_<n>/(e.g.,comics/My_Awesome_Comic/Chapter_1/)
tmp_<hid>/ # Temporary workspace
└── run_params.json # Saved settings (resume/restore)
comics/
├── <Title>[_Groups]_Ch_a-b.epub/pdf/cbz # Final build(s)
└── <Title>/Chapter_<n>/ # Raw images (if --keep-images)
- Final files →
comics/ - Use
--no-cleanupto inspecttmp_<hid>/after completion - Re-run with
--restore-parameters+ new--formatto reassemble without re-downloading
This tool is provided strictly for educational purposes and to help you create personal, offline backups of manga to which you have legal access. Please respect the rights of content creators and publishers—unauthorized sharing, piracy, or redistribution of material is prohibited.
- Fork the repo
- Create a feature branch (
git checkout -b feature/foo) - Test your update (where possible)
- macOS (Apple Silicon):
test_scripts/python_version_tester.shautomatically spins up per-version virtualenvs after installing missing[email protected]formulae via Homebrew (pyenv is optional but supported). - Otherwise: run targeted unit/download tests that exercise your change.
- macOS (Apple Silicon):
- Commit (
git commit -m "Add foo") - Push (
git push origin feature/foo) - Open a Pull Request
Please follow the existing style and include tests where applicable.
This project stands on the shoulders of many wonderful open-source tools and libraries—thank you to all the maintainers and contributors who make these possible, thank you:
- Python (CPython) – The language powering this script
- requests (psf/requests) – HTTP for Humans
- cloudscraper (VeNoMouS/cloudscraper) – Seamless Cloudflare anti-bot bypass
- Beautiful Soup (BeautifulSoup) – HTML/XML parsing made easy
- lxml (lxml/lxml) – Fast, feature-rich XML/HTML processing
- Pillow (python-pillow/Pillow) – The friendly PIL fork for image manipulation
- pypdf (py-pdf/pypdf) – PDF generation and manipulation
This project is licensed under the GNU GPLv3.
