5 releases
0.2.4 | Nov 10, 2024 |
---|---|
0.2.3 | Oct 28, 2024 |
0.2.2 | Oct 13, 2024 |
0.2.1 | Sep 10, 2024 |
0.2.0 | Aug 18, 2024 |
#165 in Multimedia
357 downloads per month
Used in rustypipe-cli
1MB
27K
SLoC
Downloader
The downloader is a companion crate for RustyPipe that allows for easy and fast downloading of video and audio files.
Features
- Fast download of streams, bypassing YouTube's throttling
- Join video and audio streams using ffmpeg
- Indicatif support to show download progress bars
(enable
indicatif
feature to use) - Tag audio files with title, album, artist, date, description and album cover (enable
audiotag
feature to use) - Album covers are automatically cropped using smartcrop to ensure they are square
How to use
For the downloader to work, you need to have ffmpeg installed on your system. If your
ffmpeg binary is located at a non-standard path, you can configure the location using
DownloaderBuilder::ffmpeg
.
At first you have to instantiate and configure the downloader using either
Downloader::new
or the DownloaderBuilder
.
Then you can build a new download query with a video ID, stream filter and destination path and finally download the video.
use rustypipe::param::StreamFilter;
use rustypipe_downloader::DownloaderBuilder;
let dl = DownloaderBuilder::new()
.audio_tag()
.crop_cover()
.build();
let filter_audio = StreamFilter::new().no_video();
dl.id("eRsGyueVLvQ").stream_filter(filter_audio).to_file("audio.opus").download().await;
let filter_video = StreamFilter::new().video_max_res(720);
dl.id("eRsGyueVLvQ").stream_filter(filter_video).to_file("video.mp4").download().await;
Dependencies
~16–36MB
~630K SLoC