mirror of
https://github.com/narrrl/ytd-rs.git
synced 2026-11-03 16:41:27 +01:00
29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
# ytd-rs
|
|
|
|
This is a simple wrapper for [youtube-dl](https://youtube-dl.org/) in rust.
|
|
|
|
```rust
|
|
use ytd_rs::{YoutubeDL, ResultType, Arg};
|
|
use std::path::PathBuf;
|
|
use std::error::Error;
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
// youtube-dl arguments quietly run process and to format the output
|
|
// one doesn't take any input and is an option, the other takes the desired output format as input
|
|
let args = vec![Arg::new("--quiet"), Arg::new_with_arg("--output", "%(title).90s.%(ext)s")];
|
|
let link = "https://www.youtube.com/watch?v=uTO0KnDsVH0";
|
|
let path = PathBuf::from("./path/to/download/directory");
|
|
let ytd = YoutubeDL::new(&path, args, link)?;
|
|
|
|
// start download
|
|
let download = ytd.download();
|
|
|
|
// check what the result is and print out the path to the download or the error
|
|
match download.result_type() {
|
|
ResultType::SUCCESS => println!("Your download: {}", download.output_dir().to_string_lossy()),
|
|
ResultType::IOERROR | ResultType::FAILURE =>
|
|
println!("Couldn't start download: {}", download.output()),
|
|
};
|
|
Ok(())
|
|
}
|
|
```
|