NOTE: The name for this library is a bit misleading, it currently does not support youtube-dl
as its development seems to be very slow recently,
it does support yt-dlp
, which has diverged from youtube-dl
in some ways, but sees a lot more development.
Runs yt-dlp and parses its JSON output. Example:
```rust use youtube_dl::YoutubeDl;
let output = YoutubeDl::new("https://www.youtube.com/watch?v=VFbhKZFzbzk") .sockettimeout("15") .run() .unwrap(); let title = output.intosingle_video().unwrap().title; println!("Video title: {}", title); ```
Or, if you want to it to run asynchronously (enable the feature tokio
):
rust
let output = YoutubeDl::new("https://www.youtube.com/watch?v=VFbhKZFzbzk")
.socket_timeout("15")
.run_async()
.await?;
let title = output.into_single_video().unwrap().title;
println!("Video title: {}", title);
Ok(())
async
variants of the run
, run_raw
and download_to
methods.download_yt_dlp
method and YoutubeDlFetcher
struct to download the yt-dlp
executable with the given TLS backend used for reqwest.