# RapidMangaDL (Manga Downloader)
RapidMangaDL is a Python package that allows you to swiftly download manga from various sources. It offers multiple ways to interact with the application, including a Command Line Interface (CLI) and an Interactive CLI with a text-based prompt. Additionally, it comes with a web-based GUI to provide a user-friendly experience.
[Suppoted Sources](https://github.com/Auto-Life/RapidMangaDL/blob/main/sources.md)
## Installation
- Install [Python](https://www.python.org/downloads/) (3.6 or higher)
- Go to terminal and run the following command
```bash
pip install RapidMangaDL
```
# Features
Download manga from multiple sources with great speed.
Three different ways to interact with the application: CLI, Interactive CLI, and Web-based GUI.
Select specific chapters or a custom range for downloading.
Choose between downloading the manga in EPUB or PDF format.
Customize the quality of the images (10 to 100).
# Interactive CLI
The Interactive CLI mode provides a user-friendly prompt to search for a manga, select chapters, specify the format, and set image quality.
To start the Interactive CLI mode, simply run:
```bash
mangadl
```
Here's a quick demo:
![CLI](https://github.com/shhossain/RapidMangaDL/raw/main/cli_demo.gif)
# Web-based GUI (Graphical User Interface)
The Web-based GUI offers a graphical interface to interact with the application. You can easily search for manga, select chapters, and initiate downloads.
To start the server, run:
```bash
mangadl gui
```
Here's a sneak peek:
![WEB DEMO](https://github.com/shhossain/RapidMangaDL/raw/main/web_demo.gif)
To create a shareable link, you can use the `--share` flag:
```bash
mangadl gui --share
```
# Command Line Interface (CLI)
The CLI mode allows you to interact with the application using command-line arguments. Here's an example of how you can use it:
```bash
mangadl cli -m https://manganato.com/manga-az963307 -c 1-10 -f epub -q 90
```
You can use the Command Line Interface (CLI) with arguments to initiate a download. Here's a breakdown of the available options:
```bash
usage: mangadl [-h] [-s QUERY] [-m MANGA] [-ss SOURCE] [-c CHAPTERS] [-ex EXCLUDE] [-f {epub,pdf}] [-q QUALITY] [--host HOST] [-p PORT] [mode]
positional arguments:
mode Mode to run (choices: gui, prompt, cli) [Web ui, Interactive CLI, CLI]
optional arguments:
-h, --help show this help message and exit
-s QUERY, --query QUERY
Search for a manga (This will move to interactive mode with the search results)
-m MANGA, --manga MANGA
Manga to download
Examples:
-m https://manganato.com/manga-az963307 (most reliable)
-m manga-id (from web gui something like this managato_uq971673)
-m manga-title (Match by similarity, not relaiable)
-ss SOURCE, --source SOURCE
Source to download from (Examples: -ss manganato | -ss mangakakalot | -ss manganelo | -ss mangasee123)
-c CHAPTERS, --chapters CHAPTERS
Chapters to download
Examples:
-c 1-10 | -c 1,2,3 | -c 1-10, 20-30 | -c 1-10, 20-30, 40, 50, 60-70 | -c latest 10 | -c Chapter 1, Chapter 2 |
-c https://manganato.com/manga-az963307/chapter-1-https://manganato.com/manga-az963307/chapter-2
-c last (last 5 chapters)
-ex EXCLUDE, --exclude EXCLUDE
Chapters to exclude (same rules apply as --chapters)
-f {epub,pdf}, --format {epub,pdf}
Format to download (choices: epub, pdf)
-q QUALITY, --quality QUALITY
Quality of images (10-100)
--host HOST Host address of the server (default: 127.0.0.1)
-p PORT, --port PORT Port of the server (default: 80)
-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the log level (choices: DEBUG, INFO, WARNING, ERROR, CRITICAL)
```
# Python API
You can also use the Python API to interact with the application.
Selecting a manga
```python
from manga_dl import Manga
manga = Manga("https://manganato.com/manga-az963307")
manga.set_info()
print(manga.title)
print(manga.author)
print(manga.description)
```
Selecting from search results
```python
mangas = Manga.search("one piece")
manga = mangas[0]
manga.set_info()
print(manga.title)
```
Selecting chapters
```python
manga.select_chapters("last 10")
# or
manga.select_chapters("1-10")
# or
manga.select_chapters("1,2,3,4,5,6,7,8,9,10")
# or
manga.select_chapters("1-10, 20-30, 40, 50, 60-70")
# or
managa.select_chapters("https://manganato.com/manga-az963307/chapter-1-https://manganato.com/manga-az963307/chapter-2")
# exclude chapters
manga.select_chapters("1-10", exclude="5") # same rules apply for exclude
```
Downloading
```python
manga.create_epub()
# or
manga.create_pdf()
# specify quality
manga.create_epub(quality=70) # Default is 85(unchangable)
# specify output directory
manga.create_epub(path="C:/Users/username/Desktop")
```
Launching the server
```python
from manga_dl import app
app.run()
# or
app.run(host="localhost", port=80) # app is a Flask app
```
# Contributing
See [CONTRIBUTING.md](https://github.com/Auto-Life/RapidMangaDL/blob/main/CONTRIBUTING.md)
Raw data
{
"_id": null,
"home_page": "https://github.com/shhossain/RapidMangaDL",
"name": "RapidMangaDL",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "manga downloader",
"author": "sifat",
"author_email": "hossain0338@gmail.com",
"download_url": "",
"platform": null,
"description": "# RapidMangaDL (Manga Downloader)\r\n\r\nRapidMangaDL is a Python package that allows you to swiftly download manga from various sources. It offers multiple ways to interact with the application, including a Command Line Interface (CLI) and an Interactive CLI with a text-based prompt. Additionally, it comes with a web-based GUI to provide a user-friendly experience.\r\n[Suppoted Sources](https://github.com/Auto-Life/RapidMangaDL/blob/main/sources.md)\r\n\r\n## Installation\r\n\r\n- Install [Python](https://www.python.org/downloads/) (3.6 or higher)\r\n- Go to terminal and run the following command\r\n\r\n```bash\r\npip install RapidMangaDL\r\n```\r\n\r\n# Features\r\n\r\nDownload manga from multiple sources with great speed.\r\nThree different ways to interact with the application: CLI, Interactive CLI, and Web-based GUI.\r\nSelect specific chapters or a custom range for downloading.\r\nChoose between downloading the manga in EPUB or PDF format.\r\nCustomize the quality of the images (10 to 100).\r\n\r\n# Interactive CLI\r\n\r\nThe Interactive CLI mode provides a user-friendly prompt to search for a manga, select chapters, specify the format, and set image quality.\r\n\r\nTo start the Interactive CLI mode, simply run:\r\n\r\n```bash\r\nmangadl\r\n```\r\n\r\nHere's a quick demo:\r\n\r\n![CLI](https://github.com/shhossain/RapidMangaDL/raw/main/cli_demo.gif)\r\n\r\n# Web-based GUI (Graphical User Interface)\r\n\r\nThe Web-based GUI offers a graphical interface to interact with the application. You can easily search for manga, select chapters, and initiate downloads.\r\n\r\nTo start the server, run:\r\n\r\n```bash\r\nmangadl gui\r\n```\r\n\r\nHere's a sneak peek:\r\n\r\n![WEB DEMO](https://github.com/shhossain/RapidMangaDL/raw/main/web_demo.gif)\r\n\r\nTo create a shareable link, you can use the `--share` flag:\r\n\r\n```bash\r\nmangadl gui --share\r\n```\r\n\r\n# Command Line Interface (CLI)\r\n\r\nThe CLI mode allows you to interact with the application using command-line arguments. Here's an example of how you can use it:\r\n\r\n```bash\r\nmangadl cli -m https://manganato.com/manga-az963307 -c 1-10 -f epub -q 90\r\n```\r\n\r\nYou can use the Command Line Interface (CLI) with arguments to initiate a download. Here's a breakdown of the available options:\r\n\r\n```bash\r\nusage: mangadl [-h] [-s QUERY] [-m MANGA] [-ss SOURCE] [-c CHAPTERS] [-ex EXCLUDE] [-f {epub,pdf}] [-q QUALITY] [--host HOST] [-p PORT] [mode]\r\n\r\npositional arguments:\r\n mode Mode to run (choices: gui, prompt, cli) [Web ui, Interactive CLI, CLI]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n -s QUERY, --query QUERY\r\n Search for a manga (This will move to interactive mode with the search results)\r\n -m MANGA, --manga MANGA\r\n Manga to download\r\n Examples:\r\n -m https://manganato.com/manga-az963307 (most reliable)\r\n -m manga-id (from web gui something like this managato_uq971673)\r\n -m manga-title (Match by similarity, not relaiable)\r\n -ss SOURCE, --source SOURCE\r\n Source to download from (Examples: -ss manganato | -ss mangakakalot | -ss manganelo | -ss mangasee123)\r\n -c CHAPTERS, --chapters CHAPTERS\r\n Chapters to download\r\n Examples:\r\n -c 1-10 | -c 1,2,3 | -c 1-10, 20-30 | -c 1-10, 20-30, 40, 50, 60-70 | -c latest 10 | -c Chapter 1, Chapter 2 |\r\n -c https://manganato.com/manga-az963307/chapter-1-https://manganato.com/manga-az963307/chapter-2\r\n -c last (last 5 chapters)\r\n\r\n -ex EXCLUDE, --exclude EXCLUDE\r\n Chapters to exclude (same rules apply as --chapters)\r\n -f {epub,pdf}, --format {epub,pdf}\r\n Format to download (choices: epub, pdf)\r\n -q QUALITY, --quality QUALITY\r\n Quality of images (10-100)\r\n --host HOST Host address of the server (default: 127.0.0.1)\r\n -p PORT, --port PORT Port of the server (default: 80)\r\n -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log {DEBUG,INFO,WARNING,ERROR,CRITICAL}\r\n Set the log level (choices: DEBUG, INFO, WARNING, ERROR, CRITICAL)\r\n```\r\n\r\n# Python API\r\n\r\nYou can also use the Python API to interact with the application.\r\n\r\nSelecting a manga\r\n\r\n```python\r\nfrom manga_dl import Manga\r\n\r\nmanga = Manga(\"https://manganato.com/manga-az963307\")\r\nmanga.set_info()\r\n\r\nprint(manga.title)\r\nprint(manga.author)\r\nprint(manga.description)\r\n\r\n```\r\n\r\nSelecting from search results\r\n\r\n```python\r\n\r\nmangas = Manga.search(\"one piece\")\r\nmanga = mangas[0]\r\nmanga.set_info()\r\n\r\nprint(manga.title)\r\n```\r\n\r\nSelecting chapters\r\n\r\n```python\r\n\r\nmanga.select_chapters(\"last 10\")\r\n# or\r\nmanga.select_chapters(\"1-10\")\r\n# or\r\nmanga.select_chapters(\"1,2,3,4,5,6,7,8,9,10\")\r\n# or\r\nmanga.select_chapters(\"1-10, 20-30, 40, 50, 60-70\")\r\n# or\r\nmanaga.select_chapters(\"https://manganato.com/manga-az963307/chapter-1-https://manganato.com/manga-az963307/chapter-2\")\r\n\r\n# exclude chapters\r\nmanga.select_chapters(\"1-10\", exclude=\"5\") # same rules apply for exclude\r\n```\r\n\r\nDownloading\r\n\r\n```python\r\nmanga.create_epub()\r\n# or\r\nmanga.create_pdf()\r\n\r\n# specify quality\r\nmanga.create_epub(quality=70) # Default is 85(unchangable)\r\n\r\n# specify output directory\r\nmanga.create_epub(path=\"C:/Users/username/Desktop\")\r\n```\r\n\r\nLaunching the server\r\n\r\n```python\r\nfrom manga_dl import app\r\n\r\napp.run()\r\n# or\r\napp.run(host=\"localhost\", port=80) # app is a Flask app\r\n```\r\n\r\n# Contributing\r\n\r\nSee [CONTRIBUTING.md](https://github.com/Auto-Life/RapidMangaDL/blob/main/CONTRIBUTING.md)\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Swiftly download manga from multiple sources.",
"version": "0.2.7",
"project_urls": {
"Documentation": "https://github.com/shhossain/RapidMangaDL",
"Homepage": "https://github.com/shhossain/RapidMangaDL",
"Issue Tracker": "https://github.com/shhossain/RapidMangaDL/issues",
"Source Code": "https://github.com/shhossain/RapidMangaDL"
},
"split_keywords": [
"manga",
"downloader"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b08f283db98decfeb2f8302d27ebba83dc634736820d970848b40a39957a6deb",
"md5": "a6c30f7b7bb8168eb247009b7cb89369",
"sha256": "3833b95a1fec4b01a6b6ef1fa591386dd83021ebe04e5d35d562f9ea22d82bc4"
},
"downloads": -1,
"filename": "RapidMangaDL-0.2.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a6c30f7b7bb8168eb247009b7cb89369",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 409680,
"upload_time": "2023-08-18T16:36:36",
"upload_time_iso_8601": "2023-08-18T16:36:36.611787Z",
"url": "https://files.pythonhosted.org/packages/b0/8f/283db98decfeb2f8302d27ebba83dc634736820d970848b40a39957a6deb/RapidMangaDL-0.2.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-18 16:36:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "shhossain",
"github_project": "RapidMangaDL",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "rapidmangadl"
}