Skip to content

The most versatile, feature-rich & customizable command-line manga, manhwa, webtoon, manhua & comic downloader / ebook creation tool for comick.io.

License

Notifications You must be signed in to change notification settings

zzyil/comick.io-Downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

comick.io Downloader πŸ“š

Important

comick.io seems to have been shutdown. Once a new platform establishes itself I will rewrite this project for said platform, thank you for your support everybody!

Python GNU GPLv3

The most versatile, feature-rich & customizable command-line tool to download webtoons (manhwa), comics and manga from comick.io and package them into PDF, EPUB, or CBZβ€”with intelligent image processing, resumable downloads, scanlation group prioritization, and optional chapter/file-size splitting.

Comick.io Downloader Banner

πŸ“‘ Table of Contents


πŸš€ Features

  • πŸ“₯ 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.
  • πŸ–ΌοΈ Image Processing
    Resize, scale, recombine, and compress images for optimal reading.
  • 🚫 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.
  • πŸ”„ 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.

πŸ› οΈ Requirements

  • 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

Feature support by Python version

  • Legend:
    • βœ… Supported
    • ⚠️ Supported with caveats (see notes)
    • ❌ Not supported
Python PDF 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.

🧰 Installation

git clone https://github.com/zzyil/comick.io-Downloader.git
cd comick.io-Downloader
python3 -m pip install -r requirements.txt

πŸš€ Usage

python3 comick_downloader.py [OPTIONS] COMIC_URL

Run python3 comick_downloader.py --help for the full option list.


βš™οΈ Options

Option Description Default
COMIC_URL URL of the comic’s main page (e.g. https://comick.io/comic/demo-comic) 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

πŸ” Cookie Setup

If authentication is required, export your cookies:

export COOKIES='ads_provider2="…"; membership_alert=true; …'

Then run:

python3 comick_downloader.py --cookies "$COOKIES" \
  "https://comick.io/comic/your-comic-url"

πŸ“– Examples

  1. Page-layout EPUB, chapters 1–2, preferred group Asura, verbose:

    python3 comick_downloader.py \
      --cookies "$COOKIES" \
      --group Asura \
      --chapters "1-2" \
      --format epub \
      --epub-layout page \
      --verbose \
      "https://comick.io/comic/demo-comic"
  2. Vertical EPUB, chapters 1–20, split every 5 chapters, verbose & debug:

    python3 comick_downloader.py \
      --group Asura \
      --chapters "1-20" \
      --format epub \
      --epub-layout vertical \
      --split 5ch \
      --verbose --debug \
      "https://comick.io/comic/demo-comic"
  3. CBZ, chapters 1–2, one chapter per file:

    python3 comick_downloader.py \
      --group Asura \
      --chapters "1-2" \
      --format cbz \
      --split 1ch \
      "https://comick.io/comic/demo-comic"
  4. PDF, chapters 1–2, save each chapter separately:

    python3 comick_downloader.py \
      --group Asura \
      --chapters "1-2" \
      --format pdf \
      --keep-chapters \
      "https://comick.io/comic/demo-comic"
  5. Raw CBZ, chapters 1–50 (no resizing/recombining/scaling):

    python3 comick_downloader.py \
      --chapters "1-50" \
      --format cbz \
      --no-processing \
      "https://comick.io/comic/demo-comic"
  6. Raw EPUB (pages copied as-is):

    python3 comick_downloader.py \
     --format epub \
     --no-processing \
     "https://comick.io/comic/demo-comic"

πŸ’‘ Tips & Tricks

Here are some handy pointers to get the most out of your workflow:

  • πŸ”„ Ongoing Series Updates
    β€’ Use --no-cleanup to 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-parameters to restore input parameters to exactly match the previous one.

  • πŸ—‚οΈ Archiving Originals
    β€’ Add --keep-images to save every raw page under comics/<Title>/Chapter_<n>/.
    β€’ Useful if you want to re-process images later (different layout, quality, etc.).

  • 🧾 Raw Packaging (No Processing)
    β€’ Use --no-processing to 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-chapters to 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-partials to 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 60 to drop JPEG quality for smaller files.
    β€’ --scaling 80 to downscale pages to 80% of the original processed size.
    β€’ Combine with --split to 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-upvote to pick the highest-upvoted release among your chosen groups.

  • πŸ” Debugging & Verbose Logs
    β€’ -v / --verbose for step-by-step progress.
    β€’ -d / --debug for deep image-processing insights (resizing, recombining).

  • πŸ“¦ Per-Chapter Files
    β€’ Use --keep-chapters to save each chapter as its own PDF/EPUB/CBZ alongside the main book.


πŸ“ Output Structure

  • 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)
  • Raw Images (if --keep-images is 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-cleanup to inspect tmp_<hid>/ after completion
  • Re-run with --restore-parameters + new --format to reassemble without re-downloading

βš–οΈ Disclaimer

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.


🀝 Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/foo)
  3. Test your update with /test_scripts/python_version_tester.sh
  4. Commit (git commit -m "Add foo")
  5. Push (git push origin feature/foo)
  6. Open a Pull Request

Please follow the existing style and include tests where applicable.


πŸ™ Acknowledgements

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:


πŸ“„ License

This project is licensed under the GNU GPLv3.


About

The most versatile, feature-rich & customizable command-line manga, manhwa, webtoon, manhua & comic downloader / ebook creation tool for comick.io.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published