#download #api #e621 #rule34 #danbooru #command-line-tool #cli-interface

app imageboard_downloader

Cli utility to bulk download images from popular imageboard sites (Boorus) using their APIs

31 releases (13 stable)

1.7.0 Jan 18, 2024
1.6.2 Dec 13, 2023
1.5.5 Sep 4, 2023
1.2.0 Nov 2, 2022
0.27.4 Aug 29, 2022

#51 in Images

Download history 3/week @ 2024-03-14 113/week @ 2024-03-28 46/week @ 2024-04-04 1/week @ 2024-05-16

182 downloads per month

MIT license

215KB
5K SLoC

Imageboard Downloader

imageboard-downloader-rs is a command-line multi image gallery downloader made in Rust with a very simple, yet extensible API.

It is a cross-platform tool with speed, simple cli interface and multiple simultaneous downloads as its main focus.

imageboard_downloader_rs has a hardcoded limit of 100 pages per download session to prevent API rate-limiting and put less strain on the imageboard's servers.

Avoid downloading single tag selections that span ~100k posts alone without using the download limiter. Be reasonate!

Running example

Features

Installation

Currently, you can install the latest version using cargo or download from Releases

cargo install imageboard_downloader

Or by cloning this repository and building it yourself

git clone https://gitlab.com/FerrahWolfeh/imageboard-downloader-rs.git

cd imageboard-downloader-rs

cargo build --release

cargo run --release -- search "your_tag" "your_another_tag_(cool)" -o ~/

The final binary will be located at target/release/imageboard_downloader

Windows releases coming someday...

Usage

The utility has 3 main operating modes:

This mode is the former default mode of the utility, where it will fetch all posts with a tag-based search

cargo run --release -- search [OPTIONS] <TAGS>...

2. Post download

This mode is meant for downloading a single or a select few posts byt inputting their id

cargo run --release --  post [OPTIONS] <POST_IDS>...

3. Pool download

This mode is for downloading entire groups of organized posts (pools)

cargo run --release -- pool [OPTIONS] <POOL_ID>

Each mode has their own unique set of options, see more details with imageboard_downloader --help or cargo run --release -- --help.


Examples

Download images from danbooru with specified tags

imageboard_downloader search "skyfire_(arknights)"

In case you want to authenticate with danbooru or e621, use the --auth flag only once. Then all subsequent downloads will use authentication as well.


Download images starting from page 10

imageboard_downloader search "skyfire_(arknights)" -s 10

Download only images with "safe" rating from e621

imageboard_downloader search -i e621 "ash_(pokemon)" "pikachu" --safe-mode

Download images from rule34 with 20 simultaneous downloads

imageboard_downloader search -i rule34 -d 20 "moe"

Save downloaded images with their id instead of md5 as filename

imageboard_downloader search -i e621 "wolf" "anthro" --id

By default, the program will download files to your current dir. In case you want to download files to another place use:

imageboard_downloader "kroos_(arknights)" -o /any/other/dir

This will save files in /any/other/dir/<file>.png If the specified directory does not exist, it will be created.

Download posts with annotated tags

In order to download posts and save their tags along with them in a .txt file, just run the app like this:

cargo run --release -- post -o /whenever --annotate 123 456 69420

Inspiration and References

Dependencies

~19–34MB
~538K SLoC