download_audio/
download_audio.rs1use std::{error::Error, path::Path};
2
3use tokio::fs;
4use ybd_core::{
5 actuator,
6 client::BiliClient,
7 login,
8 model::{download::DownloadOption, video::PlayUrlResponse},
9};
10#[tokio::main]
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}