Skip to main content

download_audio/
download_audio.rs

1use 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}