17 releases (9 breaking)
0.10.0 | Apr 16, 2024 |
---|---|
0.9.0 | Aug 20, 2023 |
0.8.1 | May 20, 2023 |
0.8.0 | Jan 22, 2023 |
0.1.1 | Aug 9, 2019 |
#41 in Video
993 downloads per month
Used in 3 crates
55KB
1.5K
SLoC
youtube-dl-rs
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:
use youtube_dl::YoutubeDl;
let output = YoutubeDl::new("https://www.youtube.com/watch?v=VFbhKZFzbzk")
.socket_timeout("15")
.run()
.unwrap();
let title = output.into_single_video().unwrap().title;
println!("Video title: {}", title);
Or, if you want to it to run asynchronously (enable the feature tokio
):
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(())
Feature flags
- tokio: Enables the
async
variants of therun
,run_raw
anddownload_to
methods. - downloader-native-tls / downloader-rustls-tls: Enables the
download_yt_dlp
method andYoutubeDlFetcher
struct to download theyt-dlp
executable with the given TLS backend used for reqwest.
Dependencies
~0.8–12MB
~135K SLoC