/ytextract

Extract information from various YouTube pages and get video streams for downloading.

Primary LanguageRustApache License 2.0Apache-2.0

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

#[tokio::main]
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());

    Ok(())
}

More examples can be found here: examples

Notes

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