pub struct Video { /* private fields */ }
Expand description

A YouTube downloader, which allows you to download all available formats and qualities of a YouTube video.

Each instance of Video represents an existing, available, and downloadable video.

There are two ways of constructing an instance of Video:

  1. By using the asynchronous Video::from_* methods. These methods will take some kind of video-identifier, like an Url or an Id, will then internally download the necessary video information and finally descramble it.
  2. By calling VideoDescrambler::descramble. Since a VideoDescrambler already contains the necessary video information, and just need to descramble it, no requests are performed. (This gives you more control over the process).

Examples

let url = Url::parse("https://youtube.com/watch?iv=5jlI4uzZGjU")?;
let video: Video = Video::from_url(&url).await?;
let url = Url::parse("https://youtube.com/watch?iv=5jlI4uzZGjU")?;
let fetcher: VideoFetcher = VideoFetcher::from_url(&url)?;
let descrambler: VideoDescrambler = fetcher.fetch().await?;  
let video: Video = descrambler.descramble()?;
  • Construction using chained calls
let url = Url::parse("https://youtube.com/watch?iv=5jlI4uzZGjU")?;
let video: Video = VideoFetcher::from_url(&url)?
   .fetch()
   .await?
   .descramble()?;
  • Downloading a video using an existing Video instance
let video_path = video
   .streams()
   .iter()
   .filter(|stream| stream.includes_video_track && stream.includes_audio_track)
   .max_by_key(|stream| stream.quality_label)
   .unwrap()
   .download()
   .await?;

Implementations

Creates a Video from an Url.

Errors

Creates a Video from an Id.

Errors

The VideoInfo of the video.

All Streams of the video.

Takes all Streams of the video.

Decomposes a Video into it’s raw parts.

The VideoDetailss of the video.

The Id of the video.

The title of the video.

Whether or not the video is age restricted.

The Stream with the best quality. This stream is guaranteed to contain both a video as well as an audio track.

The Stream with the worst quality. This stream is guaranteed to contain both a video as well as an audio track.

The Stream with the best video quality. This stream is guaranteed to contain only a video but no audio track.

The Stream with the worst video quality. This stream is guaranteed to contain only a video but no audio track.

The Stream with the best audio quality. This stream is guaranteed to contain only a audio but no video track.

The Stream with the worst audio quality. This stream is guaranteed to contain only a audio but no video track.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more