19 个版本
0.7.5 | 2024 年 7 月 24 日 |
---|---|
0.7.4 | 2023 年 10 月 27 日 |
0.7.2 | 2023 年 9 月 27 日 |
0.6.4 | 2023 年 7 月 25 日 |
0.3.1 | 2022 年 7 月 30 日 |
#211 in 网页编程
每月 394 次下载
在 3 个 Crates 中使用
71KB
2K SLoC
invidious
Rust 对 Invidious API 的绑定。
快速入门
通过创建一个客户端并使用 ClientSync::default()
来开始,然后使用那里的函数。
阻塞 API
use invidious::*;
fn main() {
let client = ClientSync::default();
let video = client.video("fBj3nEdCjkY", None).unwrap();
let seach_results = client.search(Some("q=testing")).unwrap();
}
异步 API
启用功能 reqwest_async
。
invidious = { version = "0.6", no-default-features = true, features = ["reqwest_async"]}
#[tokio::main]
async fn main() {
let client = ClientAsync::default();
let vidio = client.video("fBj3nEdCjkY", None).await.unwrap();
let seach_results = client.search(Some("q=testing")).await.unwrap();
}
了解更多关于 ClientSync
和 ClientAsync
的信息,以查看所有可用函数。
方法
控制客户端如何进行网络请求。
更改方法
例如,要在 ClientAsync
中使用 isahc
而不是 reqwest
发送请求,首先启用 isahc_async
功能,并可选地禁用 reqwest_async
功能(如果已启用)。
invidious = { version = "6.0", no-default-features = true, features = ["isahc_async"]}
let video = ClientAsync::default()
.method(MethodAsync::Isahc)
.video("fBj3nEdCjkY", None).await.unwrap();
如果没有任何获取方法符合您的需求,请考虑实现自己的客户端结构体。(同步 和 异步)
功能
此包使用功能来指定用于获取 http(s) 响应的 crate。仅包括所需的 crate。不同的功能会导致不同的编译时间和性能。每个功能的编译时间可以在 MethodSync
和 MethodAsync
中找到。
以下列出了所有可用功能。
功能 | 使用的 crate |
---|---|
httpreq_sync (默认启用) |
http_req |
ureq_sync |
ureq |
minreq_sync |
minreq(支持https功能) |
minreq_http_sync |
minreq |
reqwest_sync |
reqwest(支持阻塞功能) |
reqwest_async |
reqwest |
isahc_sync |
isahc |
isahc_async |
isahc |
通用用法
大多数函数看起来像这样
client.function_name(id: &str, params: Option<&str>) // when id is needed.
client.function_name(params: Option<&str>) // when id is not needed, for example search.
参数
参数允许用户包含URL参数,如Invidious API文档中指定。
开头的问题符号?
被省略。
这是如何工作的
Invidious是YouTube的替代前端,同时也提供API。
此crate包括每个API端点的struct,并允许用户包含他们想要的任何额外参数。然后使用serde crate将来自Invidious API的json响应序列化和反序列化。
贡献
欢迎贡献!如果你这样做,请在GitHub上提交pull request。
- 更新过时的绑定struct。
- 添加新的获取方法,以提高编译时间或运行时。
- 改进文档。
许可证:GPL-3.0
依赖项
~0.7–16MB
~219K SLoC