cyberdrop-dl

Crates.iocyberdrop-dl
lib.rscyberdrop-dl
version0.3.2
sourcesrc
created_at2021-07-07 13:49:46.013851
updated_at2021-09-22 09:55:00.804269
descriptionCyberdrop.me album downloader written in Rust
homepagehttps://github.com/wmw9/cyberdrop-dl
repositoryhttps://github.com/wmw9/cyberdrop-dl
max_upload_size
id419894
size56,142
wmw (wmw9)

documentation

README

📦🌏 cyberdrop-dl - cyberdrop.me Downloader written in Rust 🦀

cyberdrop-dl_demo

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)
Commit count: 14

cargo fmt