[][src]Struct rustube::Video

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]

Creates a Video from an Url.

Errors

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

Creates a Video from an Id.

Errors

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

The VideoInfo of the video.

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

All Streams of the video.

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

Takes all Streams of the video.

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

The VideoDetailss of the video.

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

The Id of the video.

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

The title of the video.

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

Weather or not the video is age restricted.

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

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]

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]

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]

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]

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]

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]

impl Debug for Video[src]

impl Display for Video[src]

impl PartialEq<Video> for Video[src]

impl StructuralPartialEq for Video[src]

Auto Trait Implementations

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