8 个版本 (5 个稳定版)
1.3.5 | 2022年7月5日 |
---|---|
1.3.4 | 2022年6月13日 |
0.2.2 | 2022年6月5日 |
0.1.2 | 2022年5月31日 |
#1839 in 网页编程
155KB
3.5K SLoC
youtubei-rs
异步实现 invidious innertube(又称youtubei API包装器)。
使用 tokio, reqwest, serde 和 serde_json。
版本升级 0.2.3 到 1.2.3 的重大更改
- 旧查询现在以 _legacy 前缀,如果依赖于它们,只需在程序中将它们重命名即可,它们仍然按相同方式工作
依赖项
- serde_json
- serde: features = ["derive"]
- reqwest: features = ["json","gzip"]
- tokio: features = ["full"]
路线图
- 实现代理支持
- 移除 panic
- 添加更多端点
已实现的端点
- 下一页
- 浏览
- 搜索
- resolve_url
- player
支持的查询
- next_video_id // 获取给定 videoId 的下一个(相关和评论)结果
- next_continuation // 使用给定 ctoken 获取更多下一个(相关和评论)结果
- browse_id // 获取给定 browseId 的浏览(频道或播放列表)结果
- browse_continuation // 使用给定 ctoken 获取更多浏览(频道或播放列表)结果
- resolve, // 解析给定 url
- player // 获取给定 videoId 的播放器数据
示例
use youtubei_rs::{query::player, utils::default_client_config, types::query_results::PlayerResult};
#[tokio::main]
async fn main() {
// create default client_config with WEB client
let client_config = &default_client_config();
// get player for video with id gC6dQrScmHE
let player: PlayerResult = player(String::from("gC6dQrScmHE"),String::from(""),&client_config).await.unwrap();
println!("{}",player.video_details.title); // video title
}
带有日志记录
为了日志记录,使用 tracing,因此可以安装 tracing_subscribe 以便更容易使用 tracing。该库的目标是 youtubei_rs,具有 debug、trace 和 error 级别。
use youtubei_rs::{query::player, utils::default_client_config};
#[tokio::main]
async fn main() {
std::env::set_var("RUST_LOG", "youtubei_rs=debug");
tracing_subscriber::fmt::init();
// create default client_config with WEB client
let client_config = &default_client_config();
// get player for video with id gC6dQrScmHE
let player: PlayerResult = player(String::from("gC6dQrScmHE"),String::from(""),&client_config).await.unwrap();
println!("{}",player.video_details.title); // video title
}
支持的查询(旧版)
- get_video: 获取除字幕和故事板之外的所有视频信息
- get_channel_info: 获取所有频道信息和关于标签的信息
- get_channel_tab: 获取特定标签,如视频以获取频道视频
- search: 搜索 YouTube
- load_search: 使用 ctoken 继续搜索
- get_comments: 加载视频的初始评论或更多评论
- load_related_videos: 加载更多相关视频
- get_playlist: 加载播放列表
依赖项
~6–21MB
~287K SLoC