Rust bindings for the invidious API. Get information about videos, channels, and playlists from YouTube without using the YouTube official API.
```rust use invidious::blocking::Client; use std::error::Error;
fn main() -> Result<(), Box
Ok(()) } ```
```rust use invidious::asynchronous::Client; use std::error::Error;
async fn main() { let client = Client::new(String::from("https://vid.puffyan.us")); let channelvideos = client.channelvideos("UCAkuTH35kk3W1EL9vq6dj6A", Some("sort_by=popular&page=2")) .await .unwrap();
let playlist = client.playlist("PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI", None) .await .unwrap(); // Returns Playlist } ```
client.function_name(id: &str, args: Option<&str>) -> Result<T, Box<dyn Error>>
id
is the id of the video, channel, or playlist, and is only used when applicable.args
is an optional string of additional arguments to be passed to the API. For example, sort_by=popular&page=2
(Arguments are separated by &
)Uses the Invidious api to get information about videos, channels, and playlists. The Invidious API is a REST API, so the invidious crate uses the reqwest crate to make requests to the Invidious API, and then uses the serde_json crate to parse the JSON returned by the Invidious API.
Official documentation of the Invidious API can be found here: https://docs.invidious.io/api
License: GPL-3.0