Topic: e621 Downloader made in Rust that can download sets, pools, bulk posts, and single posts!

I have returned. This program is my Opus Magnum of programs. I've wanted a software that could do these things for a long time, but could never find one that handled all of the options I wanted. So, I decided to make it myself.

Release Description

e621_downloader is a low-level, close-to-hardware program meant to download a large number of images at a decent pace. It can handle bulk posts, single posts, sets, and pools via a custom easy-to-read language that I made.

Having tested this software extensively with downloading, I managed to download 10,000 posts (which was over 20+ GB of data with some animations going over 100+ MB) in just two hours.

Download Link

FEATURES:
- A tag file that has a simple language with generated examples and comments.
- Searching for single posts, bulk posts, sets, and pools.
- Downloads images in their own folders named after their searching tag.
- The ability to log in and use your blacklist.

Notice for users using the new version (1.6.0 and newer)

If you are not logged into E6, a filter (almost like a global blacklist) is applied with the entry young -rating:s. This blacklist will nullify any posts that fall under it. If you wish to download any posts of this kind, you must log in and download it, otherwise, this filter will be there.

Notice for users using a VPN

I have had a recurring "bug" that has shown in my issues the last couple of months, and they tend to crop up right after a new release, so I am going to supply a new notice for those using VPNs to prevent this becoming issue spam. There are users who are experiencing crashes consistently when parsing, obtaining blacklist, or downloading. It is an issue that is consistent, and each person thus far have been using a VPN with no other noticeable cause linked. After a multitude of testing, I have concluded that users using VPNs will occasionally have either e621 directly or Cloudflare prompt for a captcha, or a test for whether you are a robot. Since my program does not support GUI, or no tangible way of handling that, it will crash immediately. I have looked for fixes to this issue and have yet to find anything. So, if you are using a VPN, be warned, this can happen. The current work around for this issue is switching locations in the VPN (if you have that feature) or disabling the VPN altogether (if you have that option). I understand it is annoying, and can be a pain, but this is all I can do until I come across a fix. Sorry for the inconvenience, and apologies if you are some of the users experiencing this issue.

Features Planned

- [ ] Add a menu system with configuration editing, tag editing, and download configuration built in.
- [ ] Transition the tag file language into Json to integrate easily with the menu system.
- [ ] Update the code to be more sound, structured, and faster.

Installation

All you have to do is decompress e621_downloader.7z and run the software (make sure e621_downloader.exe is in its own directory!). The program will print errors first, don't worry! It is simply telling you that the config is missing and will generate it. It will also make the tag.txt and emergency exit. The program exits to allow for you to edit the tag file. This file will have examples and comments explaining how the file works. Don't worry, it's easy :).

You don't have to worry about making the download directory, it is handled for you. The download directory is configurable in the config.json file (please make sure the directory always ends with /!).

Compiling Source

If you wish to compile the code and run the bleeding edge of the software, you can find installation guides for Windows, Arch Linux, and Debian.

Installation Guide (Windows)
Installation Guide (Arch Linux)
Installation Guide (Debian)

FAQ

Github if you encounter any errors and wish to report it there.

Updated