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 |
#91 in Images
182 downloads per month
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!
Features
- Multiple simultaneous downloads.
- Authentication and user blacklist.
- Download limit.
- Custom Imageboards (PLANNED. See https://github.com/FerrahWolfeh/imageboard-downloader-rs/issues/6)
- Global blacklist. See more
- Store downloads in
cbz
file. See more [x] Update already downloaded galleries.(DEPRECATED)
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:
1. Tag Search
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
- gallery-dl https://github.com/mikf/gallery-dl
- trauma (download workflow) https://github.com/rgreinho/trauma
- Av1an (mainly the progress bars) https://github.com/master-of-zen/av1an
- e621_downloader (part of e621 api) https://github.com/McSib/e621_downloader
Dependencies
~21–35MB
~542K SLoC