show_video_info_raw/
show_video_info_raw.rs1use std::error::Error;
2
3use serde_json::Value;
4use ybd_core::{
5 client::BiliClient, login, model::param::VideoRequestParamBuilder, url::VIDEO_DOWNLOAD_URL,
6 util::extract_bv_id,
7};
8
9#[tokio::main]
10async fn main() -> Result<(), Box<dyn Error>> {
11 let account = login::get_account().await?;
12 let bili_client = BiliClient::new(&account)?;
13 let bvid = extract_bv_id(
14 "https://www.bilibili.com/video/BV17W411e7VL/?spm_id_from=333.337.search-card.all.click&vd_source=8bd37d9aaf81178ae3e80214a1c8e367",
15 )?;
16 let vrp = VideoRequestParamBuilder::new(&bvid, &bili_client)
17 .await?
18 .build(&bili_client)
19 .await?;
20 let url = format!("{}?{}", VIDEO_DOWNLOAD_URL, vrp.to_query_string());
21 let resp: Value = bili_client.get(&url).send().await?.json().await?;
22
23 let json_str = serde_json::to_string_pretty(&resp)?;
24 tokio::fs::create_dir_all("output").await?;
25 tokio::fs::write("output/video_example.json", json_str).await?;
26 println!("The res is outputed to output/video_example.json");
27 Ok(())
28}