13 stable releases

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

#79 in Authentication

Download history 17/week @ 2024-01-15 2/week @ 2024-02-19 16/week @ 2024-02-26 4/week @ 2024-03-11 69/week @ 2024-04-01

69 downloads per month
Used in imageboard_downloader

MIT license

190KB
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

  • Multiple simultaneous downloads.
  • Authentication and user blacklist.
  • Download limit.
  • Custom websites support.
  • Global blacklist. See more
  • Store downloads in cbz file. See more

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

~13–28MB
~428K SLoC