#parser #e621 #download #save #data #struct #filename #common #posts #filenames

ibdl-common

Common functions and data structs for parsing and downloading posts from imageboards

1 stable release

Uses new Rust 2021

1.2.0 Nov 2, 2022

#895 in Rust patterns

Download history 22/week @ 2022-10-28 32/week @ 2022-11-04 18/week @ 2022-11-11 16/week @ 2022-11-18

88 downloads per month
Used in 3 crates

MIT license

22KB
466 lines

Imageboard Downloader

imageboard-downloader-rs 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.

Dependencies

  • OpenSSL >= 1.1.1

Installation

Currently you can install the latest version using cargo

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 -- "your_tag" "your_another_tag_(cool)" -o ~/

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

Usage

To use the utility simply call it with space-separated tags

imageboard_downloader [OPTIONS] <TAGS>...

Or run with cargo

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

See more details with imageboard_downloader --help.

Examples

Download images from danbooru with specified tags:

imageboard_downloader "skyfire_(arknights)"

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


Download only images with "safe" rating from e621 (also works with danbooru/konachan):

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

Download images from rule34 with 100 simultaneous downloads:

imageboard_downloader -i rule34 -d 100 "moe"

By default, the program will download files to your current dir with the following structure ./<gallery_name>/tag1+tag2+.../<file_md5>.png. 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/danbooru/kroos_(arknights)/<file_md5>.png If the specified directory does not exist, it will be created.


Save downloaded images with their id instead of md5 as filename:

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

Inspiration and References

Dependencies

~10–18MB
~357K SLoC