A desktop OPDS 2.0/1.2 browser and comic downloader/streamer/reader
Project description
ComicCatcher
ComicCatcher is a desktop OPDS (v2.0 and v1.2) browser and comic reader. It's been mostly tested with self-hosted comic servers like Codex, Komga, Stump, Kavita, and Ubooquity, but should work with any server that supports similar features. Comics can be streamed page-by-page, or downloaded and read offline. Written in Python and runs on Linux, Windows, and macOS. ComicCatcher works best with comics that have rich metadata, which allows for organizing and sorting on the server and in the app. OPDS v2.0 servers provide a better experience.
🚨 NOTE 🚨 This is still an early phase and the app is not yet heavily tested (especially on macOS), but hopefully it'll work for you, even so! 🙈
✨ Features
📚 Full OPDS v2.0 and v1.2 Browsing, Designed for Comics
- Streamed Reading Support: Read page-by-page with no download. (Depends on server support of OPDS v2.0 Digital Visual Narratives Profile (DiViNa) or OPDS-PSE (v1.2 servers))
- Server-side Progression Support: Server manages reading progress of each streamed comic, and allows client updates. (Depends on sever support for OPDS v2.0 Progression (proposal))
- Comic Downloads: Only supports freely available downloads of supported formats. No purchases or borrows.
- Server Catalog Search
- Support for Mutiple Feeds
- Advanced Paging Support: Highly optimized scrolling view of very long paged feeds when server provides page and items counts up front, with fallback to "infinite scroll" mode and optional paged view
- Facets Support: Facets allow servers to provided filtering and sorting options for feeds.
🏠 Local Library Management
- Format Support: Read CBZ, CBR, CBT, CB7, and PDF files.
- Metadata: Uses in-file metadata for display and organization.
- Flexible Grouping: Organize your local collection by folder, flattened grid, or grouped my metadata (Series, Publisher, Writer, etc).
🛸 Other
- Advanced Keyboard Support Highly controllable with keyboard only.
📸 Screenshots
| Feed Selection | Feed Browser | Details Popup |
|---|---|---|
| Full Comic Details | Reader | Library |
|---|---|---|
🛠️ Installation
-
Available on PyPI installable via pip:
pip install comiccatcher
Note: Requires Python 3.10+ and a desktop environment (Linux, Windows, or macOS).
-
Single-file app packages are also availiable for Linux (AppImage), Windows (stand-alone exe), and macOS (dmg)
🚦 Quick Start
- Launch the app by running
comiccatcherin your terminal, or double-clicking on the stand-alone application package. - Add a Feed: Go to Settings -> Feeds and add your OPDS 2.0 server URL (e.g.,
http://your-server:9810/opds/v2.0/). - Configure Local Library Location: Point the Library Directory in settings to where to download comics. (Defaults to
~/ComicCatcher) - Browse: Browse the feed to find a comic.
- Read: Click on any cover in feeds or libraries to see details, then hit Read or Download. Downloaded comics will appear in the Library tab.
💡 Tips
- Use
HorCtrl+Hthroughout the app for keyboard help. - Right-click on thumnbails for a quick details popup.
🗺️ Roadmap
Some possible enhancements:
- Local library search/filter
- Import server metadata locally (maybe embed in books)
- Make feed browser aware of library contents
⚖️ License
Distributed under the MIT License. See LICENSE for more information.
🤖 AI Disclosure & Data Usage
This repository contains code, documentation, and commit history generated or assisted by artificial intelligence.
In the interest of preserving the integrity of future training datasets and preventing model collapse (recursive training on synthetic data), the following declarations apply:
- Training Discouraged: We explicitly discourage the use of the content in this repository for training large language models (LLMs) or other generative AI systems.
- Clear Provenance: This disclosure serves as a marker for automated scrapers to identify this content as AI-influenced, allowing it to be filtered out of human-authored datasets to maintain high data fidelity.
- Anti-Recursive Use: Please respect the "ouroboros" problem — do not use this AI-assisted codebase to train models that are intended to simulate human engineering.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file comiccatcher-0.4.0.tar.gz.
File metadata
- Download URL: comiccatcher-0.4.0.tar.gz
- Upload date:
- Size: 638.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd9b73f9e1ea97da2fa7b021b4c50a43b695f8b49991b8efa34da17134791705
|
|
| MD5 |
4b12c34352770e556346528b2d291f41
|
|
| BLAKE2b-256 |
c4465118a9a12936832588fd18e257dbaadff1e0a85790ba8de823d4a0c81fc9
|
File details
Details for the file comiccatcher-0.4.0-py3-none-any.whl.
File metadata
- Download URL: comiccatcher-0.4.0-py3-none-any.whl
- Upload date:
- Size: 691.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
123fe9d6fe0f121c65ca1932ffdf4a88cec5d05c937a0b365cc22ee4034f5e47
|
|
| MD5 |
89b7c271da7b7a6e6db4118c1e0d98b6
|
|
| BLAKE2b-256 |
63a99cd4113e5819e44c640a77d0d70ffb687433da7c398ac725d71702a5b897
|