<div align="center">
<a href="https://github.com/sinkaroid/jigoku/wiki"><img width="500" src="https://cdn.discordapp.com/attachments/1046495201176334467/1048406208714903635/jigoku_.png" alt="jigoku"></a>
<h4 align="center">Bulk downloader for booru imageboards with evil intentions</h4>
<p align="center">
<a href="https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_posts.yml"><img src="https://github.com/sinkaroid/jigoku/workflows/bulk%20multiple%20posts/badge.svg" /></a>
<a href="https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_pages.yml"><img src="https://github.com/sinkaroid/jigoku/workflows/bulk%20multiple%20pages/badge.svg"></a>
</p>
Jigoku is a CLI tool for downloading content around the imageboards, seamlessly integrates with popular website like danbooru, rule34, gelbooru, and many more. It's also modular, no matter what kind of links you have, what kind imageboard you want to download from, If still covered by the flow, this tools will adapt.
<a href="#usage">🚀 Usage</a> •
<a href="https://github.com/sinkaroid/jigoku/actions">Testing Cases</a> •
<a href="https://github.com/sinkaroid/jigoku/wiki">Documentation</a> •
<a href="https://github.com/sinkaroid/jigoku/issues/new/choose">Report Issues</a>
</div>
- [Jigoku](#)
- [The problem](#the-problem)
- [The solution](#the-solution)
- [Features](#features)
- [Site support](#site-support)
- [Installation](#installation)
- [Prerequisites](#prerequisites)
- [Usage](#usage)
- [Running tests](#Running-tests)
- [Phrases](#phrases)
- [Limitations](#limitations)
- [Pronunciation](#Pronunciation)
- [Legal](#legal)
---
## The Problem
<img src="https://cdn.discordapp.com/attachments/1046495201176334467/1049067378224410785/Screenshot_70.png" width="800" alt="jigoku">
Opening fuckton of tabs, and download them one by one. Piece of crap
Welp, It's not tough actually if still same website, there is also tampermonkey hacks to mock them, but what if you want to get 'em from multiple websites?
## The Solution
<img src="https://cdn.discordapp.com/attachments/1046495201176334467/1049089263247032370/jigoku_flow_1.png" width="800" alt="jigoku">
No more tampermonkey hacks, no more opening a fuckton of tabs, no more spliting your note between danbooru, gelbooru, r34 or anything else. Just one command through single file, this tools will adapt.
Jigoku apply connection retry on failed, every your network changes or something else, It will keep waiting.
## Features
- Modular bulk download
- 90% tested
- Plenty of booru support
- Connection retry on failure
- Pure scraping, does not hit the API
- Download with ease
- Interactive prompt
## Site support
Jigoku supports the following imageboards:
- [rule34](https://rule34.xxx/)
- [danbooru](https://danbooru.donmai.us/)
- [gelbooru](https://gelbooru.com/)
- [safebooru](https://safebooru.org/)
- [tbib](https://tbib.org/)
- [xbooru](https://xbooru.com/)
- [realbooru](https://realbooru.com/)
- [yandere](https://yande.re/)
- [lolibooru](https://lolibooru.moe/)
- [konachan](https://konachan.com/)
- [konachan.net](https://konachan.net/)
- [hypnohub](https://hypnohub.net/)
- [e621](https://e621.net/)
- [e926](https://e926.net/)
- [allthefallen](https://booru.allthefallen.moe)
- [paheal](https://rule34.paheal.net/)
## Prerequisites
<table>
<td><b>NOTE:</b> Python 3.7 or above</td>
</table>
Jigoku depends on
- [requests](https://pypi.org/project/requests/) Python HTTP Client
- [beautifulsoup4](https://pypi.org/project/beautifulsoup4/) HTML Parser
## Installation
It's fairly simple to use jigoku
`pip install jigoku`
- Or manual build by cloning this repository and run `python setup.py install`
## Usage
Just run without any arguments and interactive prompt will get you,
<img src="https://cdn.discordapp.com/attachments/1046495201176334467/1049111079562784778/17_1.png" width="600" alt="jigoku">
`$ jigoku`
1. First prompt will ask you to input your file
- Input your file.txt
2. Second prompt will ask you what kind of links you have
- `(1)` multiple posts or galleries
- `(2)` multiple pages
3. Third prompt will ask you for image resolution
- `(1)` original, means the original, big size
- `(2)` sample, means smaller than original
## Running tests
Is current state not covers enough? Feel free to add more test cases and submit a pull request.
> Multiple posts test: [workflows/jigoku_posts.yml](https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_posts.yml)
Multiple pages test: [workflows/jigoku_pages.yml](https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_pages.yml)
Example file input: [jigoku/tree/master/test](https://github.com/sinkaroid/jigoku/tree/master/test)
### Phrases
This pattern used for validating **posts** or **galleries**
> `/posts/` danbooru based, `&id=` gelbooru based, `?id=` gelbooru based, `/show` yandere based, `/post/view/` paheal based
Otherwise, it will assign to **pages**
For example, If you confused between `(1)` and `(2)`, check this out:
- `https://danbooru.donmai.us/posts/5874589`
- `https://rule34.xxx/index.php?page=post&s=view&id=7004047`
- This is post, choose `(1)`
- `https://danbooru.donmai.us/posts?tags=1girl&z=1`
- `https://rule34.xxx/index.php?page=post&s=list&tags=1girl`
- This is pages, choose `(2)`
- `https://danbooru.donmai.us/posts?tags=kiryuuin_satsuki+&z=5`
- `https://rule34.xxx/index.php?page=post&s=list&tags=kiryuuin_satsuki`
- This is pages from tags, choose `(2)`
- `https://danbooru.donmai.us/posts?page=2&tags=kiryuuin_satsuki+`
- `https://rule34.xxx/index.php?page=post&s=list&tags=kiryuuin_satsuki&pid=42`
- This is pages from tags with page number, choose `(2)`
- `https://danbooru.donmai.us/posts?tags=hews+&z=5`
- `https://rule34.xxx/index.php?page=post&s=list&tags=belko`
- This is pages from artist, choose `(2)`
## Limitations
You may notice that some part were strictly to "Original" resolution and "Sample" is no use, I'm pretty sure there are some limitations, for example old posts perhaps has different structures, but I haven't found any yet, current test cases has over 1000+ posts and took 20+ minutes, and it works fine.
## Legal
This tool can be freely copied, modified, altered, distributed without any attribution whatsoever. However, if you feel
like this tool deserves an attribution, mention it. It won't hurt anybody.
> Licence: WTF.
## Pronunciation
[`ja_JP`](https://www.localeplanet.com/java/ja-JP/index.html) • **jigoku** — 地獄、じごく, meaning "hell". The other mean if you opening fuckton of rule34 tabs on browser, definitely hell and piece of crap
Raw data
{
"_id": null,
"home_page": "https://github.com/sinkaroid/jigoku",
"name": "jigoku",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "booru,downloaderbulk downloader,mass downloader,gelbooru,rule34,safebooru,xbooru,tbib,realbooru,hypnohub,danbooru,atfbooru,yandere,konachan,konachan.net,lolibooru,e621,e926,paheal",
"author": "sinkaroid",
"author_email": "anakmancasan@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/5c/6a/a4fb3ddede818b46996871991d7f2969965de8b8a975e7834578cb690d40/jigoku-2.2.2.tar.gz",
"platform": null,
"description": "<div align=\"center\">\r\n<a href=\"https://github.com/sinkaroid/jigoku/wiki\"><img width=\"500\" src=\"https://cdn.discordapp.com/attachments/1046495201176334467/1048406208714903635/jigoku_.png\" alt=\"jigoku\"></a>\r\n\r\n<h4 align=\"center\">Bulk downloader for booru imageboards with evil intentions</h4>\r\n<p align=\"center\">\r\n\t<a href=\"https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_posts.yml\"><img src=\"https://github.com/sinkaroid/jigoku/workflows/bulk%20multiple%20posts/badge.svg\" /></a>\r\n\t<a href=\"https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_pages.yml\"><img src=\"https://github.com/sinkaroid/jigoku/workflows/bulk%20multiple%20pages/badge.svg\"></a>\r\n</p>\r\n\r\nJigoku is a CLI tool for downloading content around the imageboards, seamlessly integrates with popular website like danbooru, rule34, gelbooru, and many more. It's also modular, no matter what kind of links you have, what kind imageboard you want to download from, If still covered by the flow, this tools will adapt.\r\n\r\n<a href=\"#usage\">\ud83d\ude80 Usage</a> \u2022\r\n<a href=\"https://github.com/sinkaroid/jigoku/actions\">Testing Cases</a> \u2022\r\n<a href=\"https://github.com/sinkaroid/jigoku/wiki\">Documentation</a> \u2022\r\n<a href=\"https://github.com/sinkaroid/jigoku/issues/new/choose\">Report Issues</a>\r\n\r\n</div>\r\n\r\n- [Jigoku](#)\r\n - [The problem](#the-problem)\r\n - [The solution](#the-solution)\r\n - [Features](#features)\r\n - [Site support](#site-support)\r\n - [Installation](#installation)\r\n - [Prerequisites](#prerequisites)\r\n - [Usage](#usage)\r\n - [Running tests](#Running-tests)\r\n - [Phrases](#phrases)\r\n - [Limitations](#limitations)\r\n - [Pronunciation](#Pronunciation)\r\n - [Legal](#legal)\r\n\r\n---\r\n\r\n## The Problem\r\n\r\n<img src=\"https://cdn.discordapp.com/attachments/1046495201176334467/1049067378224410785/Screenshot_70.png\" width=\"800\" alt=\"jigoku\"> \r\n\r\nOpening fuckton of tabs, and download them one by one. Piece of crap \r\nWelp, It's not tough actually if still same website, there is also tampermonkey hacks to mock them, but what if you want to get 'em from multiple websites?\r\n\r\n\r\n## The Solution\r\n<img src=\"https://cdn.discordapp.com/attachments/1046495201176334467/1049089263247032370/jigoku_flow_1.png\" width=\"800\" alt=\"jigoku\">\r\n\r\n\r\nNo more tampermonkey hacks, no more opening a fuckton of tabs, no more spliting your note between danbooru, gelbooru, r34 or anything else. Just one command through single file, this tools will adapt. \r\n\r\nJigoku apply connection retry on failed, every your network changes or something else, It will keep waiting. \r\n\r\n## Features\r\n- Modular bulk download\r\n- 90% tested\r\n- Plenty of booru support\r\n- Connection retry on failure\r\n- Pure scraping, does not hit the API\r\n- Download with ease\r\n- Interactive prompt\r\n\r\n## Site support\r\n\r\nJigoku supports the following imageboards:\r\n\r\n- [rule34](https://rule34.xxx/)\r\n- [danbooru](https://danbooru.donmai.us/)\r\n- [gelbooru](https://gelbooru.com/)\r\n- [safebooru](https://safebooru.org/)\r\n- [tbib](https://tbib.org/)\r\n- [xbooru](https://xbooru.com/)\r\n- [realbooru](https://realbooru.com/)\r\n- [yandere](https://yande.re/)\r\n- [lolibooru](https://lolibooru.moe/)\r\n- [konachan](https://konachan.com/)\r\n- [konachan.net](https://konachan.net/)\r\n- [hypnohub](https://hypnohub.net/)\r\n- [e621](https://e621.net/)\r\n- [e926](https://e926.net/)\r\n- [allthefallen](https://booru.allthefallen.moe)\r\n- [paheal](https://rule34.paheal.net/)\r\n\r\n\r\n## Prerequisites\r\n\r\n<table>\r\n\t<td><b>NOTE:</b> Python 3.7 or above</td>\r\n</table>\r\n\r\nJigoku depends on\r\n- [requests](https://pypi.org/project/requests/) Python HTTP Client\r\n- [beautifulsoup4](https://pypi.org/project/beautifulsoup4/) HTML Parser\r\n\r\n## Installation\r\nIt's fairly simple to use jigoku\r\n\r\n`pip install jigoku`\r\n\r\n- Or manual build by cloning this repository and run `python setup.py install`\r\n\r\n\r\n## Usage\r\nJust run without any arguments and interactive prompt will get you, \r\n\r\n<img src=\"https://cdn.discordapp.com/attachments/1046495201176334467/1049111079562784778/17_1.png\" width=\"600\" alt=\"jigoku\"> \r\n\r\n`$ jigoku`\r\n\r\n1. First prompt will ask you to input your file\r\n - Input your file.txt\r\n\r\n2. Second prompt will ask you what kind of links you have\r\n - `(1)` multiple posts or galleries \r\n - `(2)` multiple pages\r\n\r\n3. Third prompt will ask you for image resolution\r\n - `(1)` original, means the original, big size\r\n - `(2)` sample, means smaller than original\r\n\r\n## Running tests\r\nIs current state not covers enough? Feel free to add more test cases and submit a pull request. \r\n\r\n> Multiple posts test: [workflows/jigoku_posts.yml](https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_posts.yml) \r\nMultiple pages test: [workflows/jigoku_pages.yml](https://github.com/sinkaroid/jigoku/actions/workflows/jigoku_pages.yml) \r\nExample file input: [jigoku/tree/master/test](https://github.com/sinkaroid/jigoku/tree/master/test)\r\n\r\n\r\n### Phrases\r\nThis pattern used for validating **posts** or **galleries** \r\n\r\n> `/posts/` danbooru based, `&id=` gelbooru based, `?id=` gelbooru based, `/show` yandere based, `/post/view/` paheal based \r\n\r\nOtherwise, it will assign to **pages**\r\n\r\nFor example, If you confused between `(1)` and `(2)`, check this out:\r\n\r\n- `https://danbooru.donmai.us/posts/5874589`\r\n- `https://rule34.xxx/index.php?page=post&s=view&id=7004047`\r\n - This is post, choose `(1)`\r\n- `https://danbooru.donmai.us/posts?tags=1girl&z=1`\r\n- `https://rule34.xxx/index.php?page=post&s=list&tags=1girl`\r\n - This is pages, choose `(2)`\r\n- `https://danbooru.donmai.us/posts?tags=kiryuuin_satsuki+&z=5`\r\n- `https://rule34.xxx/index.php?page=post&s=list&tags=kiryuuin_satsuki`\r\n - This is pages from tags, choose `(2)`\r\n- `https://danbooru.donmai.us/posts?page=2&tags=kiryuuin_satsuki+`\r\n- `https://rule34.xxx/index.php?page=post&s=list&tags=kiryuuin_satsuki&pid=42`\r\n - This is pages from tags with page number, choose `(2)`\r\n- `https://danbooru.donmai.us/posts?tags=hews+&z=5`\r\n- `https://rule34.xxx/index.php?page=post&s=list&tags=belko`\r\n - This is pages from artist, choose `(2)`\r\n\r\n## Limitations\r\nYou may notice that some part were strictly to \"Original\" resolution and \"Sample\" is no use, I'm pretty sure there are some limitations, for example old posts perhaps has different structures, but I haven't found any yet, current test cases has over 1000+ posts and took 20+ minutes, and it works fine.\r\n\r\n## Legal\r\nThis tool can be freely copied, modified, altered, distributed without any attribution whatsoever. However, if you feel\r\nlike this tool deserves an attribution, mention it. It won't hurt anybody.\r\n> Licence: WTF.\r\n\r\n## Pronunciation\r\n[`ja_JP`](https://www.localeplanet.com/java/ja-JP/index.html) \u2022 **jigoku** \u2014 \u5730\u7344\u3001\u3058\u3054\u304f, meaning \"hell\". The other mean if you opening fuckton of rule34 tabs on browser, definitely hell and piece of crap\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Bulk downloader for booru imageboards with evil intentions",
"version": "2.2.2",
"split_keywords": [
"booru",
"downloaderbulk downloader",
"mass downloader",
"gelbooru",
"rule34",
"safebooru",
"xbooru",
"tbib",
"realbooru",
"hypnohub",
"danbooru",
"atfbooru",
"yandere",
"konachan",
"konachan.net",
"lolibooru",
"e621",
"e926",
"paheal"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5c6aa4fb3ddede818b46996871991d7f2969965de8b8a975e7834578cb690d40",
"md5": "b195ebeea674bd9b759752ce3a18d9d7",
"sha256": "60400c803fc808f7ebaf6a511851a0c0ffe192050193d60f642d1a462e6da65c"
},
"downloads": -1,
"filename": "jigoku-2.2.2.tar.gz",
"has_sig": false,
"md5_digest": "b195ebeea674bd9b759752ce3a18d9d7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14186,
"upload_time": "2023-02-11T20:34:11",
"upload_time_iso_8601": "2023-02-11T20:34:11.592988Z",
"url": "https://files.pythonhosted.org/packages/5c/6a/a4fb3ddede818b46996871991d7f2969965de8b8a975e7834578cb690d40/jigoku-2.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-11 20:34:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "sinkaroid",
"github_project": "jigoku",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "jigoku"
}