Expand description

ytextract - A library for getting YouTube metadata

Github Crates.io docs.rs GitHub Workflow Status

This includes:

  • Videos
  • Streams (e.g. downloading of videos)
  • Playlists
  • Channels
  • Community Posts
  • Comments
  • Closed Captions
  • Search
  • Live Streams

Basic Example

async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Get a Client for making request
    let client = ytextract::Client::new();

    // Get information about the Video identified by the id "nI2e-J6fsuk".
    let video = client.video("nI2e-J6fsuk".parse()?).await?;

    // Print the title of the Video
    println!("Title: {}", video.title());


More examples can be found here: examples


  • Compiler support

    This library always expects to be used with the latest version of rust. It may run on older rust versions, but not guarantee is made, that it won’t break between versions.

  • Subscriber count

    All functions that return subscriber counts only return 3-digit precision values as that is all that YouTube returns. That means if channel has exactly 164_583 subscribers, this library will return 164_000.

  • Panic behavior

    This library should never panic. If it does, it should be reported as a bug. Panics mostly mean, that YouTube changed something that this library could not deal with.


pub use channel::Channel;
pub use error::Error;
pub use playlist::Playlist;
pub use stream::Stream;
pub use video::Video;


Channel types.

Error produced by YouTube and this library


Streams of a YouTube video



A Client capable of interacting with YouTube

A Thumbnail.

Type Definitions

The Result type used by this library