5 unstable releases
0.3.2 | Sep 22, 2021 |
---|---|
0.3.1 | Jul 15, 2021 |
0.3.0 | Jul 14, 2021 |
0.2.0 | Jul 12, 2021 |
0.1.0 | Jul 7, 2021 |
#60 in #scraper
17KB
243 lines
📦🌏 cyberdrop-dl - cyberdrop.me Downloader written in Rust 🦀
The fastest https://cyberdrop.me album downloader there is, written in Rust as an exercise.
Usage
- Download single album
$ cyberdrop-dl https://cyberdrop.me/a/album1
- Download multiple albums
$ cyberdrop-downloader albums.txt
- or
$ cyberdrop-dl https://cyberdrop.me/a/album1 https://cyberdrop.me/a/album2
Files are saved in current working directory named './cyberdrop-dl'.
How to install
Recomended. Install using cargo. You need Rust toolchain installed, get it here @ https://rustup.rs/
It's that simple
$ cargo install cyberdrop-dl
Docker
No need to build and install via Docker
$ docker run -it --rm -v "$(pwd)"/cyberdrop-dl:/cyberdrop-dl:rw wmw9/cyberdrop-dl cyberdrop-dl https://cyberdrop.me/a/album
TODO
- Download multiple albums simultaneously
- Download multiple album files in parallel
- Accept list of albums.txt via remote URL
- Custom destination directory via -o flag
- Integrate with Telegram Bot for easier usage
- Detect dublicate albums
What I Learned 🧠
- Tokio runtime (using channels, green threads, Arc<>, Semaphore limits)
- HTML scraping
- Terminal UI (multiple progress bars, spinners)
- Async/Await
- Async I/O
- Working with filesystem
- Rust basics (HTTP requests, args parsing, error handling)
Dependencies
~14–31MB
~506K SLoC