分页: 1 / 1

nodejs 测试音源api使用的测试代码

发表于 : 2025年 12月 25日 10:47 星期四
rxxx
nodejs 测试音源api使用的测试代码

代码: 全选

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);
})();