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

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.

fn clone(&self) -> Video[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Video[src]

This is supported on crate feature descramble only.

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Display for Video[src]

This is supported on crate feature descramble only.

fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl PartialEq<Video> for Video[src]

This is supported on crate feature descramble only.

fn eq(&self, other: &Video) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Video) -> bool[src]

This method tests for !=.

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]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

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

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.