Download E-Hentai archive as zip file 📦
- Firefox > GreaseMonkey 3.2 beta2+ | Tampermonkey 4.0.5054+ | Violentmonkey 2.8.18+
- Chrome > Tampermonkey 3.5.3630+ | Violentmonkey
- Opera 15+ > Tampermonkey 3.5.3630+ | Violentmonkey
- Maxthon > Violentmonkey
- Microsoft Edge > Tampermonkey 4.2.5284.0+
You must upgrade your Windows 10 to 14393 which supports Edge extension.
- Safari 10.1+ > Tampermonkey 4.3.5421+
You must upgrade your macOS to 10.12.4 which supports
download
attribute of<a>
tag. - Yandex Browser for Android > Tampermonkey 4.2.5291+
Anyway it's not a good idea to use it on mobile with limited RAM resources, but it can work, so it's up to you ;-)
- Open E-Hentai Gallery
- Find your interested gallery
- Click "Download Archive" in E-Hentai Downloader box
- Have a cup of coffee ☕
- Save the Zip file
Tips:
- Check "Number Images" to number download images
- Set "Pages Range" to choose pages you want to download
- More personalized options can be found on "Settings"
This script won't download archive from E-Hentai archive download page, so it won't spend your GPs or credits. It will fetch all the pages of the gallery and get their images' URL. Then script will use GM_xmlhttpRequest
API (in order to cross origin) to download them. After that, it will package them to a Zip file with JSZip and give it to you with FileSaver.js.
- If you are using the latest Tampermonkey, or receive a warning of "A userscript wants to access a cross-origin resource" from Tampermonkey, please Allow All or turn off "@connect mode" at setting page. For more info, see details here
- If you receive a message about out of memory on Firefox, or file not found on Chrome, see solution here
- ViolentMonkey doesn't support timeout, final URL and download progress
- Single-thread download mode is removed in 1.18, if you need it, roll back to old version
- You can also have a look at E-Hentai Image Viewing Limits
- Most of galleries may have torrents to download. You can download archive with torrent to get stable download experience, get bonus content (most in cosplay gallery), earn GP and credit, and reduce the pressure of E-Hentai original servers (though it's a P2P site)
Here are some other compatible information, which is not important.
- Tampermonkey uses a dirty way to give
GM_xhr.response
content (transfersString
toArrayBuffer
everytime), so it'll stuck for 1~3 seconds or more after downloaded image (depend on your device). If you are using Microsoft Edge, you may often see the working tab is stuck, saying it's not responding. Just let it go and do nothing. And if you are using Firefox, it's better to use GreaseMonkey from this side - Dolphin Browser (Android) doesn't support blob URL, so this script cannot be run in Tampermonkey for Dolphin probably
- UC Browser (Android) doesn't support blob constructor, so this script cannot be run in Tampermonkey for UC probably
- Opera 12- doesn't support blob URL, and if generated as data URL, it may crash, so it's not supported
- TrixIE (for IE) is too old and its
GM_xhr
cannot handle large content, so it's not supported
The script will store ALL the data in RAM, not in HDD. This will increase the memory usage of current tab process. So if you don't have enough RAM, or the archive is too large (see file size limit section), please pay attention to your memory usage, or try other download tools.
"Out of memory" problem is the most limitaion of the script (in fact, all the sections of "Warning And Limitation" are about RAM problem, and here is also a specific out of memory tag to label all related issues). If you get an error like out of memory, see solution here. And if you usually have the problem, try other tools.
To help us debug, the script will output some logs into console (F12 -> Console). If you find a bug, you can keep opening devtools to see and copy the logs. But note that it may increase memory usage and reduce running efficiency. So don't open console only if you want to see the output logs.
(This part is a bit long, you can just read the table)
Different browsers have different maximum file size limits. Here is a table to show the maximum size the supported browser can handle.
Browser | Maximum Size |
---|---|
Chrome 56- | 500 MB |
Chrome 57+ | 2 GB or (total RAM / 5) |
Chrome (with File System) | 1 GB |
Firefox | ? |
Opera 15+ | Same as Chrome |
Safari 10.1+ | ? |
Maxthon | ? |
For Google Chrome 56-, it has a hard limit at 500 MB on Blob Storage for years. That means all the files that in storage cannot be larger than 500MB in total, and if the storage doesn't have enough free space to save the next file, it'll return a fake Blob instance silently without any errors. Also for Chrome 45-, Blob.close()
didn't implement, so we cannot free those used Blob immediately at that time, only to pary the browser will GC them ASAP (and for most of time it didn't work). That's why here is a wiki page to help you work around this.
So to help you save larger files, the script can save the Zip file into File System, a deprecated HTML5 API but still works on Chrome (as it's Chrome introduce the standard first). With the API, you can handle larger file because the file data will be writing to your disk instead of storing in Blob Storage, its limit is also big enough (10% of your disk free storage, 15 GB in maximum). But when processing the file, the files are still keeping in RAM, and if datas are too large, Chrome may also cannot handle them. From my test the maximum limit maybe 1 GB, but it may also depends on your device.
Chrome 57+ fixes the 500 MB limit of Blob Storage, so that it can handler larger files in RAM just like File System. Its quota is still exist but it's larger, which bases on the limits below, and here are some examples to make it more clear:
In-memory quota:
2GB
if system is x64 and NOT ChromeOS or AndroidTotal RAM amount / 5
;Disk quota:
Disk size / 2
if ChromeOS (user partition disk size)Disk size / 20
if AndroidDisk size / 10
otherwise.Also, if disk is almost full, we try to keep at least
(in-memory quota)*2
disk space available, and we limit the disk quota accordingly.
For Firefox, from our previous data from FileSaver.js, the limit is 800 MB. But from our tests, you can save the file that larger than 800 MB. So we think the limit of Firefox is depending on your device, as it stores the Blob in RAM. If you have a larger RAM, you can save a larger file. However, you should care about your RAM usage, as if Firefox cannot get more RAM to generate Zip, it'll throw an "out of memory" error. To give you some advice, no more than 200 MB if you're using 4 GB RAM, and be care for more than 800 MB if you're using 8 GB RAM.
Opera 15+ is a Chromium-based browser, so you can check its Chromium version and compare it to Chrome version to get your limit. All the other Chromium-based browsers can also use this rule.
Safari 10.1+ finally supports download
attribute on <a>
tag, so you can now make it works on Safari. We don't have too much data about Safari Blob limit, so if you're dealing with Safari, be care about your RAM usage.
See plans and progress here, notice that some of them may changed or removed in some time.
You can report a bug or give suggestions at GitHub Issue or GreasyFork Feedback. English and Chinese are acceptable 😝
English is not my mother tounge, so if you found any mistakes, don't hesitate to let me know =ω=
Sorry my code is a bit untidy, so it may hard for your development. I'll try optimizing it in a further time 😅