ncm_api_rs/api/
song_url_v1.rs1use super::Query;
2use crate::error::Result;
3use crate::request::{ApiClient, ApiResponse, CryptoType};
6use serde_json::json;
7
8impl ApiClient {
9 pub async fn song_url_v1(&self, query: &Query) -> Result<ApiResponse> {
12 let id = query.get_or("id", "0");
13 let level = query.get_or("level", "standard");
14 let mut data = json!({
15 "ids": format!("[{}]", id),
16 "level": level,
17 "encodeType": "flac"
18 });
19 if level == "sky" {
20 data["immerseType"] = json!("c51");
21 }
22 self.request(
23 "/api/song/enhance/player/url/v1",
24 data,
25 query.to_option(CryptoType::default()),
26 )
27 .await
28 }
29}