Struct rustube::Video[][src]

pub struct Video { /* fields omitted */ }

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

impl Video[src]

pub async fn from_url(url: &Url) -> Result<Self>[src]

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

Creates a Video from an Url.

Errors

pub async fn from_id(id: IdBuf) -> Result<Self>[src]

This is supported on crate features descramble and download only.

Creates a Video from an Id.

Errors

pub fn video_info(&self) -> &VideoInfo[src]

This is supported on crate feature descramble only.

The VideoInfo of the video.

pub fn streams(&self) -> &Vec<Stream>[src]

This is supported on crate feature descramble only.

All Streams of the video.

pub fn into_streams(self) -> Vec<Stream>[src]

This is supported on crate feature descramble only.

Takes all Streams of the video.

pub fn video_details(&self) -> Arc<VideoDetails>[src]

This is supported on crate feature descramble only.

The VideoDetailss of the video.

pub fn id(&self) -> Id<'_>[src]

This is supported on crate feature descramble only.

The Id of the video.

pub fn title(&self) -> &str[src]

This is supported on crate feature descramble only.

The title of the video.

pub fn is_age_restricted(&self) -> bool[src]

This is supported on crate feature descramble only.

Whether or not the video is age restricted.

pub fn best_quality(&self) -> Option<&Stream>[src]

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.

pub fn worst_quality(&self) -> Option<&Stream>[src]

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.

pub fn best_video(&self) -> Option<&Stream>[src]

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.

pub fn worst_video(&self) -> Option<&Stream>[src]

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.

pub fn best_audio(&self) -> Option<&Stream>[src]

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.

pub fn worst_audio(&self) -> Option<&Stream>[src]

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

impl Clone for Video[src]

This is supported on crate feature descramble only.

impl Debug for Video[src]

This is supported on crate feature descramble only.

impl Display for Video[src]

This is supported on crate feature descramble only.

impl PartialEq<Video> for Video[src]

This is supported on crate feature descramble only.

impl StructuralPartialEq for Video[src]

This is supported on crate feature descramble only.

Auto Trait Implementations

impl !RefUnwindSafe for Video

impl Send for Video

impl Sync for Video

impl Unpin for Video

impl !UnwindSafe for Video

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.