The web-browser extension companion to comix-downloader
Download manga and comic chapters directly from comix.to as Images, PDF, or CBZ.
This browser extension is the official web-based counterpart to the Comix Downloader Python Project. While the main Python application provides a powerful PyQt6/QML desktop GUI and interactive CLI powered by Playwright, this extension allows you to browse, filter, and download directly within your Chromium browser—bypassing any complex Python setups and leveraging native browser download mechanisms.
| Feature | Description |
|---|---|
| 🌐 Seamless Integration | Auto-detects titles and chapters while you browse comix.to |
| 🖼️ Multi-Format Export | Download as raw WebP/JPEG Images, consolidated PDF, or standard CBZ |
| 📦 ComicInfo.xml Metadata | Automatically generates XML metadata inside CBZ packages for modern readers |
| 🎯 Smart Filter & Select | Filter chapters dynamically by scanlator group, title, or index with bulk-select tools |
| 🛡️ Anti-Scrape Bypass | Uses custom declarativeNetRequest header rules to bypass CDN referrer checks |
| ⚡ Offscreen Conversion | Uses Chrome's offscreen API for headless canvas-based WebP ➔ JPEG conversion |
| 📈 Real-Time Progress | Tracks downloads with detailed progress bars and status updates |
Choose one of the two methods below to install the extension in any Chromium-based browser (Chrome, Edge, Brave, Opera, Vivaldi, etc.).
No coding setup or Node.js required.
- Go to the Releases page on GitHub.
- Download the latest
comix-downloader-extension.zipfile. - Extract the downloaded zip file into a folder of your choice.
- Open your browser and go to the Extensions page:
- For Chrome:
chrome://extensions/ - For Brave:
brave://extensions/ - For Edge:
edge://extensions/
- For Chrome:
- Enable Developer mode (toggle switch usually in the top-right corner).
- Click Load unpacked (top-left button).
- Select the extracted folder containing the extension files (the directory containing
manifest.json).
For developers who want to modify or compile the code from scratch.
-
Clone the repository:
git clone https://github.com/Yui007/comix-extension.git cd comix-extension -
Install dependencies:
npm install
-
Build the extension:
npm run build
This compiles the TypeScript code and bundles assets into the
dist/directory. -
Package the extension (Optional):
npm run zip
This generates a
comix-downloader-extension.ziparchive containing the built files in the root folder, ready to be shared or uploaded. -
Load into your Browser:
- Go to your browser's Extensions page (e.g.
chrome://extensions/). - Enable Developer mode.
- Click Load unpacked.
- Select the built
distfolder located in your repository directory.
- Go to your browser's Extensions page (e.g.
- Navigate to any manga or comic title page on
comix.to(e.g.https://comix.to/title/...). - Click the Comix Downloader extension icon in your browser toolbar.
- The popup will automatically scan the page and load the title, metadata, cover art, and chapter list.
- Customize your settings:
- Select your desired output format (🖼️ Images, 📄 PDF, or 📦 CBZ).
- Filter chapters using the search input.
- Select the specific chapters you want to download.
- Click Download and watch the real-time progress update. The extension will automatically open chapter tabs in the background, download the pages, bundle them, and save them to your browser's default downloads directory (inside
ComixDownloads/).
comix-extension/
├── public/ # Static assets
│ ├── icons/ # Extension icons
│ └── manifest.json # Manifest V3 configuration
├── scripts/
│ ├── postbuild.js # Formats and moves HTML outputs post-bundling
│ └── zip.js # Archives dist folder for publishing
├── src/
│ ├── content/ # Content scripts (runs in page context)
│ │ ├── title.ts # Scans manga details on title page
│ │ └── reader.ts # Extracts canvas/image URLs from reader view
│ ├── core/ # Shared models and utilities
│ │ ├── config.ts # User setting types and operations
│ │ ├── constants.ts # Base endpoints
│ │ ├── models.ts # Manga, Chapter, and Format helpers
│ │ └── selectors.ts # Centralized DOM selector registry
│ ├── offscreen/ # Offscreen document for WebP ➔ JPEG conversion
│ ├── options/ # Extension settings panel
│ ├── popup/ # Interactive extension popup popup.html / popup.ts
│ └── background.ts # Extension background service worker (orchestrates download job)
├── package.json # Scripts & project dependencies
├── tsconfig.json # TypeScript configuration
└── vite.config.ts # Vite bundle configuration
- Vite & Rollup: Configured to bundle independent entry points (background worker, popup, options page, offscreen document) into a clean, flat-directory layout.
- declarativeNetRequest: Dynamically spoofs HTTP
RefererandOriginheaders for outgoing requests towowpicand*.storeCDNs. Also injects CORS headers to permit safe cross-origin resource access. - Offscreen Canvas: Chromium Service Workers cannot access the DOM or canvas context directly. The extension automatically spawns an offscreen HTML page to convert browser-native WebP images to JPEG binary formats, enabling compatibility with PDF builders.
- pdf-lib: Used to assemble images into standard PDF publications on-the-fly.
- jszip: Compresses raw images alongside custom
ComicInfo.xmlmetadata files to construct highly compatible Comic Book Archives (.cbz).
This project is licensed under the MIT License - see the LICENSE file for details.
This extension is for personal use and educational purposes only. Please respect the copyright of creators and publishers by supporting official releases.
Made with ❤️ by Yui007
⭐ Star this repository and the main Python Downloader if you find them helpful!
