#bilibili #api #data #user #api-client #got #inspiration

bilibili-api-rs

一个从Passkou/bilibili-api获得灵感的Rust库项目

12个版本

0.3.6 2024年5月5日
0.3.5 2024年1月13日
0.3.4 2023年10月13日
0.3.2 2023年7月5日
0.1.0 2021年6月23日

#115HTTP客户端

Download history 131/week @ 2024-04-30 22/week @ 2024-05-07 1/week @ 2024-05-14 5/week @ 2024-05-21 7/week @ 2024-06-11

每月814次下载

WTFPL 许可证

32KB
709

bilibili-api-rs

crates license docs Gitmoji

bilibili-api-rs是从bilibili-api获得灵感的Rust库项目。

  • 没有计划覆盖所有API。
  • 仅支持“GET”类型的API。

设计

数据

  • API
    • user::{info, channel_series}, video::info, xlive::info

代码

  • root: 导出
    • wbi: access(path, querymap, respschema)
      • 包装user, xlive等

许可证

WTFPL


lib.rs:

bilibili-api-rs是从bilibili-api获得灵感的Rust库项目。

目前仅支持“GET”API。API接口 UserXlive 继承自 Client

API结果为响应的一部分,类似于bilibili-api,是response["data"]。无效的响应被视为错误然后退出。 注意,初始化重试和令牌刷新也视为错误。

高开销:为了反检测,客户端在每个请求中打开一个新的完整连接。

示例

use bilibili_api_rs::Client;
use anyhow::Result;
async fn test_xlive() -> Result<()> {
    let mut cli = Client::new();
    let area_virtual = 9;
    let type_all = 0;
    cli.xlive(area_virtual, type_all).list(1).await.ok(); // usually retry once for init
    let lives = cli.xlive(area_virtual, type_all).list(2).await?;
    Ok(())
}

依赖项

~10–26MB
~358K SLoC