Struct rustube::Video[][src]

pub struct Video { /* fields omitted */ }
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

This is supported on crate features download and regex and descramble only.

Creates a Video from an Url.

Errors
This is supported on crate features descramble and download only.

Creates a Video from an Id.

Errors
This is supported on crate feature descramble only.

The VideoInfo of the video.

This is supported on crate feature descramble only.

All Streams of the video.

This is supported on crate feature descramble only.

Takes all Streams of the video.

This is supported on crate feature descramble only.

Decomposes a Video into it’s raw parts.

This is supported on crate feature descramble only.

The VideoDetailss of the video.

This is supported on crate feature descramble only.

The Id of the video.

This is supported on crate feature descramble only.

The title of the video.

This is supported on crate feature descramble only.

Whether or not the video is age restricted.

This is supported on crate feature descramble only.

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

This is supported on crate feature descramble only.

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

This is supported on crate feature descramble only.

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

This is supported on crate feature descramble only.

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

This is supported on crate feature descramble only.

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

This is supported on crate feature descramble only.

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 !=.

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

Performs the conversion.

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

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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