Home
Softono
MeManga

MeManga

Open source MIT Python
51
Stars
6
Forks
7
Issues
1
Watchers
1 week
Last Commit

About MeManga

Automatic manga downloader with a desktop app and a power-user CLI

Platforms

Web Self-hosted

Languages

Python

Links

πŸ“– MeManga

Automatic manga downloader with a desktop app and a power-user CLI.

Track manga across 224 scrapers / 319 domains, read downloaded chapters in the built-in reader, and optionally email them to your Kindle. Works offline once chapters are downloaded.

MeManga Library β€” dark theme grid of manga covers

latest release MIT license platforms python


✨ Highlights

  • πŸ–₯️ Single-file desktop app β€” MeManga.exe / MeManga, no Python install required
  • πŸ“š Library tracking β€” your read/unread state survives reboots
  • πŸ” Multi-source search β€” 15 popular aggregators pre-checked, ranked by reliability
  • πŸ“– Built-in reader β€” zoom, fit-to-page, keyboard nav, no external viewer needed
  • πŸ“₯ PDF / EPUB / CBZ / ZIP / JPG / PNG / WEBP output
  • πŸ“§ Kindle delivery β€” auto-send chapters by email after download
  • πŸ”„ Backup sources β€” fall back to a second source if the primary stops updating
  • 🌐 Offline-aware β€” gracefully disables network actions, auto-resumes when wifi returns
  • 🀝 Power-user CLI β€” same engine, scriptable, cron-friendly, works on headless servers
  • πŸ”’ No telemetry, no accounts, no cloud β€” everything stays on your machine

πŸ“₯ Download

The fastest path is the release binary. Nothing to install β€” double-click and you're in.

OS File
Windows MeManga-windows-x64.exe
macOS (Apple Silicon) MeManga-macos-arm64
Linux (x86_64) MeManga-linux-x64

First launch downloads Firefox (~80 MB, one-time, behind a progress dialog). Playwright uses it under the hood to scrape JS-heavy sources like MangaFire and WeebCentral.

Windows SmartScreen may warn the first time β€” click "More info β†’ Run anyway". The app is not yet code-signed.

macOS Gatekeeper β€” right-click β†’ Open the first time; future launches are normal.

Prefer building from source? See Build from source below.


Part 1 β€” Desktop App

πŸš€ First five minutes

When you open MeManga for the first time:

  1. The Library page is empty β€” click + Add manga in the header.
  2. Paste a manga URL from any supported source, or click Search in the sidebar and type the title.
  3. The app remembers what you added, what you've downloaded, and what you've read β€” across restarts and across machines (config lives in ~/.config/memanga/).

Add Manga dialog

πŸ“š Library

The Library page is your home. Cards show the cover, status pill (READING, COMPLETED, …), an unread badge when there are new chapters, and an in-progress bar for the current chapter you're on.

Library page with mixed manga statuses

  • Click a card β†’ Detail page (chapter list, status, mode, Kindle toggle)
  • Right-click β†’ quick actions (mark as read, change status, remove)
  • Top-right chip row filters by status; the chip count updates live

πŸ“– Reader

Click any downloaded chapter on the Detail page to open it in the built-in reader.

Built-in reader showing a chapter

Key / mouse Action
↑ ↓ / scroll wheel Scroll within page
← β†’ / Page Up Page Down Previous / next chapter
Ctrl/Cmd + scroll Zoom in/out
Ctrl/Cmd + 0 Reset zoom
Click-drag while zoomed Pan
Esc Back to Detail

πŸ” Search

Search hits only the 15 most popular working aggregators by default β€” MangaDex, MangaPill, MangaFire, MangaBuddy, WeebCentral, MangaKatana, Comick, MangaHub, MangaHere, MangaPanda, MangaClash, MangaHere.onl, MangaTaro, LuminousScans, TCBScans. Flip more on in the Sources tab if you want a wider net (the long-tail aggregators are usually slower or have stale catalogs).

Search results for "Blue Lock" with chapter-count chips

Each result row shows the source domain, a 47 ch chip telling you how many chapters that source has, and a + Add button that drops it straight into your library.

πŸ“₯ Downloads

The Downloads page shows what's currently downloading and what just finished. Each row has progress, cancel, and "open folder" buttons. Cancel-all drains the queue cleanly.

Downloads page with active + completed rows

If a chapter fails partway through, MeManga retries the failed pages up to 3Γ— with exponential back-off. If pages are still missing, the chapter is not marked as downloaded β€” next "Check" will pick it back up.

🌐 Sources

The Sources page shows every supported domain with its current health status (latency, last successful check, last error). Toggle individual sources on/off; your selection persists across restarts.

Sources page with toggle list and health badges

Hit Re-check health to ping every enabled source.

βš™οΈ Settings

  • General β€” output format (PDF/EPUB/CBZ/…), download folder, theme, concurrency
  • Kindle / Email β€” Gmail App Password setup for sending chapters to your Kindle
  • Advanced β€” fallback-source delay, cron, cache management

Settings page β€” Kindle/Email tab

Setting up Kindle delivery

  1. Generate a Gmail App Password (regular passwords won't work; Google blocks them for SMTP).
  2. Add your Gmail address to your Amazon "Approved Personal Document E-mail List".
  3. In Settings β†’ Kindle / Email, paste your Kindle email, sender Gmail, and the App Password. Hit "Test" β€” you'll get a "Test email sent" toast when it works.
  4. On the Detail page of any manga, toggle Send to Kindle after download.

PDFs over 18 MB are split automatically; EPUB / CBZ files can't be split so they fail-loud with a size warning.


Part 2 β€” Command-line interface

Just want the CLI? A dedicated cli branch strips PySide6 and the GUI module out of the tree β€” leaner venv, faster pip install, no Qt runtime to worry about, ideal for headless servers and Docker images. main keeps both.

The CLI ships in the source tree (not the release binary). It's the right tool for cron jobs, headless servers, batch operations, and scripting. The desktop app and the CLI share the same config, state, and download files β€” you can drive your library from both interchangeably.

Install

git clone https://github.com/meellm/MeManga.git
cd MeManga
python setup.py            # creates a venv + installs everything

The CLI lives at python -m memanga once the venv is active. On Windows, prefer:

.\scripts\windows\setup.bat
.\scripts\windows\run.bat <command>

On macOS / Linux:

./scripts/run.sh <command>

Commands

Command Purpose
list (ls) Show every tracked manga with status + chapter counts
add Add a manga; supports -t TITLE -u URL [-b BACKUP_URL] or -i interactive
set TITLE STATUS reading / on-hold / dropped / completed
remove TITLE (rm) Drop a manga from tracking
update TITLE … Edit URL, backup source, or rename
check [TITLE] [--from N] [--auto] [--safe] Look for new chapters, optionally download them
failed [--retry] [--clear] List / re-attempt / clear partially-failed downloads
status Show config dir, download dir, manga count, last check time
config Interactive settings editor
cron install [--time 06:00] Schedule a daily check --auto job
cron status / cron remove Inspect / uninstall the cron job
sources List all 319 supported domains, marking which ones are healthy
export FILE / import FILE Back up or restore your library + state as JSON
tui Launch the in-terminal interactive view

Run any subcommand with --help for full flags.

Common recipes

Add a manga with a backup source

python -m memanga add \
    -t "Blue Lock" \
    -u "https://mangapill.com/manga/580/blue-lock" \
    -b "https://mangadex.org/title/4141c5dc-c525-4df5-afd7-cc7d192a832f"

If MangaPill stops updating, MeManga falls back to MangaDex after fallback_delay_days (default 2) β€” long enough for a slow-translating primary to catch up.

Backfill an entire series from chapter 1

python -m memanga check -t "Blue Lock" --from 1 --auto --safe

--safe restarts the browser every 3 chapters to keep memory usage flat across long bulk runs.

Schedule daily checks

# Linux/macOS β€” installs a crontab entry
python -m memanga cron install --time 06:00

# Windows β€” register a Task Scheduler entry (run as your user)
python -m memanga cron install --time 06:00

Retry every failed chapter

python -m memanga failed --retry

failed is the safety net for the "downloaded but incomplete" class of errors β€” the modern downloader refuses to mark a chapter complete if any page failed, and tracks the failure so you can batch-retry later.


🌐 Sources

The default search sweep covers these 15 verified working aggregators (popularity order):

Source Type Notes
mangadex.org API Largest fan-translation library
mangapill.com Requests Fast, no Cloudflare
mangafire.to Playwright VRF bypass + image descrambling
mangabuddy.com Playwright Popular aggregator
weebcentral.com Playwright 1000+ series
mangakatana.com Playwright General library
comick.io Playwright Clean API
mangahub.io Requests Huge library
mangahere.cc Requests Reliable mirror
mangapanda.onl Requests MangaHub network
mangaclash.com Playwright Manhwa-heavy
mangahere.onl Playwright Alternate mirror
mangataro.org Requests ComicK replacement
luminousscans.com Requests Scanlation focus
tcbonepiecechapters.com Requests Jump titles (One Piece, JJK, MHA)

200+ more aggregators are in the registry β€” toggle them on in the Sources tab or via python -m memanga sources. See the full domain list.


πŸ› οΈ Build from source

git clone https://github.com/meellm/MeManga.git
cd MeManga
python setup.py            # one-time venv setup

# Dev build β€” console window stays open for tracebacks
python build.py            # β†’ ./MeManga-Dev.exe (or ./MeManga-Dev)

# Release build β€” no console, identical pins as the GitHub release
python build_app.py        # β†’ ./MeManga.exe (or ./MeManga)

Both scripts produce a single file at the repo root and sweep their build/ + dist/ scratch dirs after. The release build pulls from requirements-lock.txt (exact pins for every transitive dep) so the binary you rebuild from a tagged commit in six months matches what shipped on the release day.

See CONTRIBUTING.md for project layout, test commands, scraper-add walkthroughs, and the lock-refresh flow.


πŸ“‚ Where your data lives

Path What
~/.config/memanga/config.yaml Library, settings, source toggles, theme
~/.config/memanga/state.json Read/unread state, download history, source health
~/.config/memanga/covers/ Cover image cache
~/.config/memanga/crash.log Uncaught exceptions from the windowed release exe
~/Downloads/MeManga/<title>/ Default download folder (changeable in Settings)

Sensitive credentials (SMTP App Password) are stored in the OS keyring (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux) β€” never in plain text on disk.


❓ FAQ

Will my downloads work without internet? Yes β€” once a chapter is on disk it opens in the reader instantly. The app gracefully disables network actions (Search, Check, Download) when it detects you're offline and re-enables them when the wifi returns.

Does it phone home / send analytics? No. The app talks only to the manga sources you enable. No telemetry, no crash reports auto-sent. Crash dumps go to crash.log locally β€” if you want to share one in a bug report, you can.

Why does the first launch take a while? It's downloading Playwright's Firefox driver (~80 MB) so it can scrape JS-heavy sites. One-time, behind a progress dialog. After that, startup is ~2 seconds.

A source I use stopped working β€” what now?

  • Check Sources β†’ Re-check health for status. If it's red, the site is genuinely down or changed its HTML. File an issue with the Scraper broken template.
  • Use the search-result chapter chip to spot dead sources at a glance β€” they'll show no N ch chip.
  • Switch your manga to a backup source (Detail page β†’ Edit) until the scraper is fixed.

Can I use this on a Raspberry Pi? The CLI runs anywhere Python 3.10+ runs. The GUI works too if you have a display, but on a headless Pi you'd typically use cron + the CLI's --auto flag and xvfb-run for Playwright sources.


🀝 Contributing

PRs welcome β€” bug fixes, new scrapers, GUI polish, all of it. See CONTRIBUTING.md for the dev setup, test commands, and PR checklist. There are issue templates for bugs, features, and broken scrapers.

For security-sensitive reports, see SECURITY.md.

πŸ“„ License

MIT β€” see LICENSE.