pub struct BiliClient { /* private fields */ }Implementations§
Source§impl BiliClient
impl BiliClient
Sourcepub fn new(account: &Account) -> Result<Self>
pub fn new(account: &Account) -> Result<Self>
Examples found in repository?
examples/download_audio.rs (line 13)
11async fn main() -> Result<(), Box<dyn Error>> {
12 let account = login::get_account().await?;
13 let biliclient = BiliClient::new(&account)?;
14 let bvid = "BV1JvPMedE5E";
15
16 let resp = PlayUrlResponse::new(&biliclient, bvid).await?;
17 fs::create_dir_all("output").await?;
18 let option = DownloadOption::builder()
19 .audio_path(Path::new("output/audio_example.m4a"))
20 .build();
21 actuator::download_audio(&biliclient, &resp, &option).await?;
22 println!("The res is outputed to output/audio_example.m4a");
23 Ok(())
24}More examples
examples/show_basic_video_info.rs (line 10)
8async fn main() -> Result<(), Box<dyn Error>> {
9 let account = login::get_account().await?;
10 let biliclient = BiliClient::new(&account)?;
11 let resp: Value = biliclient
12 .get(VIDEO_INFO)
13 .header("Referer", "https://www.bilibili.com")
14 .query(&[("bvid", "BV1bzLy6EEbn")])
15 .send()
16 .await?
17 .json()
18 .await?;
19 fs::create_dir_all("./output").await?;
20 let s = serde_json::to_string_pretty(&resp)?;
21 fs::write("output/basic_video_info.json", s).await?;
22 println!("结果输出至output/basic_video_info.json");
23 Ok(())
24}examples/show_video_info.rs (line 7)
5async fn main() -> Result<(), Box<dyn Error>> {
6 let account = login::get_account().await?;
7 let bili_client = BiliClient::new(&account)?;
8 let bvid = extract_bv_id(
9 "https://www.bilibili.com/video/BV17W411e7VL/?spm_id_from=333.337.search-card.all.click&vd_source=8bd37d9aaf81178ae3e80214a1c8e367",
10 )?;
11 let resp = PlayUrlResponse::new(&bili_client, &bvid).await?;
12
13 let json_str = serde_json::to_string_pretty(&resp)?;
14 tokio::fs::create_dir_all("output").await?;
15 tokio::fs::write("output/video_example.json", json_str).await?;
16 println!("The res is outputed to output/video_example.json");
17 Ok(())
18}examples/download_video_with_no_audio.rs (line 12)
10async fn main() -> Result<(), Box<dyn Error>> {
11 let account = login::get_account().await?;
12 let biliclient = BiliClient::new(&account)?;
13 let bvid = "BV1JvPMedE5E";
14
15 let resp = PlayUrlResponse::new(&biliclient, bvid).await?;
16 fs::create_dir_all("output").await?;
17 let option = DownloadOption::builder()
18 // potplayer低于v1.7.21759,尝试GPU解码av1编码格式时会有黑屏问题,这里用avc编码
19 .video_encode(VideoEncode::AVC)
20 .video_path(Path::new("output/video_example.mp4"))
21 .build();
22 actuator::download_video_with_no_audio(&biliclient, &resp, &option).await?;
23 println!("The res is outputed to output/audio_example.mp4");
24 Ok(())
25}examples/download_video.rs (line 12)
10async fn main() -> Result<(), Box<dyn Error>> {
11 let account = login::get_account().await?;
12 let biliclient = BiliClient::new(&account)?;
13 let bvid = "BV1JvPMedE5E";
14
15 let resp = PlayUrlResponse::new(&biliclient, bvid).await?;
16 fs::create_dir_all("output").await?;
17 let option = DownloadOption::builder()
18 // potplayer低于v1.7.21759,尝试GPU解码av1编码格式时会有黑屏问题,这里用avc编码
19 .video_encode(VideoEncode::AVC)
20 .audio_path(Path::new("output/audio_example.m4a"))
21 .video_path(Path::new("output/video_example.mp4"))
22 .output(Path::new("output/video_sample.mp4"))
23 .build();
24 actuator::download_video(&biliclient, &resp, &option).await?;
25 println!("The video is outputed to output/video_sample.mp4");
26 Ok(())
27}examples/show_video_info_raw.rs (line 12)
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}Additional examples can be found in:
Sourcepub fn get(&self, url: &str) -> RequestBuilder
pub fn get(&self, url: &str) -> RequestBuilder
Examples found in repository?
examples/show_basic_video_info.rs (line 12)
8async fn main() -> Result<(), Box<dyn Error>> {
9 let account = login::get_account().await?;
10 let biliclient = BiliClient::new(&account)?;
11 let resp: Value = biliclient
12 .get(VIDEO_INFO)
13 .header("Referer", "https://www.bilibili.com")
14 .query(&[("bvid", "BV1bzLy6EEbn")])
15 .send()
16 .await?
17 .json()
18 .await?;
19 fs::create_dir_all("./output").await?;
20 let s = serde_json::to_string_pretty(&resp)?;
21 fs::write("output/basic_video_info.json", s).await?;
22 println!("结果输出至output/basic_video_info.json");
23 Ok(())
24}More examples
examples/show_video_info_raw.rs (line 21)
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}pub fn downgrade(&self) -> &Client
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for BiliClient
impl !UnwindSafe for BiliClient
impl Freeze for BiliClient
impl Send for BiliClient
impl Sync for BiliClient
impl Unpin for BiliClient
impl UnsafeUnpin for BiliClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more