代码: 全选
const axios_1 = require("axios");
//QQ是songmid,其他的是id
const quality = '320k';
const musicItem = {'songmid':'001ufyHx10iWpg'};
//const musicItem = {'songmid':'0016O7hh1h111I'};
//const musicItem = {'id':'1888381008'};
//QQ是songmid,其他的是id
//${musicItem.songmid}
//${musicItem.id}
//${songName}
//${res1.data[n]['n']}
/*
low: "128k",
standard: "320k",
high: "320k",
super: "320k",
*/
//
//
//===将下面代码复制到API中替换====
/**
* API注册表
* 新增API时:
* 1. 写一个函数
* 2. 加到这里
*/
const qq_apis = [qq_vkeys_cn,qq_aa_cab,qq_suol_cc,qq_cyapi_top,qq_haitangw_cc,qq_haitangw_net];
//qq_vkeys_cn,qq_aa_cab,qq_suol_cc,qq_cyapi_top,qq_haitangw_cc,qq_haitangw_net
//qq_ioapi_net
/**
* 统一日志
*/
function logApi(apiName, msg, err = null) {
if (err) {
console.error(`[${apiName}] ${msg}`, err.message || err);
} else {
console.log(`[${apiName}] ${msg}`);
}
}
/**
* 通用执行器
*/
async function getMediaSource(musicItem, quality) {
console.log("========== 开始获取音源 ==========");
for (const api of qq_apis) {
const apiName = api.name;
try {
logApi(apiName, "开始:");
const musicUrl = await api(musicItem, quality);
if (musicUrl && musicUrl !== "None") {
logApi(apiName, `成功获取:${musicUrl}`);
//自己测试所有api的话,注释掉下面这行
return {url: musicUrl,source: apiName,};
}else{
logApi(apiName, "获取失败!");
}
} catch (err) {
logApi(apiName, "执行异常", err);
}
}
console.log("========== 所有API获取完成 ==========");
return {url: "",source: "",};
}
//91e63738da307425376ebd19a6cc64f8acc69300ba3dc4aa82b5d0ab2eab2fe3
//ilikeyou
//ilikeyou@nqmo.com
//https://cyapi.top/user/
//https://cyapi.top/API/qq_music.php?apikey=91e63738da307425376ebd19a6cc64f8acc69300ba3dc4aa82b5d0ab2eab2fe3&type=json&mid=001ufyHx10iWpg
async function qq_cyapi_top(musicItem, quality) {
const res = (
await axios_1.default.get(`https://cyapi.top/API/qq_music.php?apikey=91e63738da307425376ebd19a6cc64f8acc69300ba3dc4aa82b5d0ab2eab2fe3&type=json&mid=${musicItem.songmid}`, {
headers: {
"X-Request-Key": "share-v2"
},
})
).data;
//console.log('res = :', res);
return res?.url || "";
}
/////其他 api 代码部分/////////////////////////////////////////////
//上面是自己添加的
//===将上面代码复制到API中替换====
/*
中间的注释掉了
*/
//
//
// 示例调用
(async () => {
const redirectUrl = await getMediaSource(musicItem, quality);
console.log("最终的重定向 URL:", redirectUrl);
})();