一份地址 + 一个 Key,即可把洛雪音乐、MusicFree 等第三方播放器接入 xd音源聚合接口。十一方平台曲库、多音质直链,由 v2 / v3 两个插件脚本自动完成全部请求与鉴权。
接入前请先向管理员申请一个 API Key(后台「API Key 管理」生成)。Key 是唯一凭证,请妥善保管、完整复制。
联系管理员在后台生成 API Key。Key 与账号绑定,停用后立即失效(返回 403)。
洛雪音乐用 /v2/index.php?key=,MusicFree 用 /v3/index.php?key=,把 Key 拼在地址后面。
浏览器打开地址即下载脚本文件,导入对应播放器,切换音源为「xd音源」即可播放。
洛雪 / MusicFree
等第三方播放器
校验 Key 合法性
下发定制 JS 脚本
解析播放地址
校验直链有效性
200/206 校验通过
即可直接播放
适用于洛雪音乐桌面版 / 移动版。访问 v2 地址即下载一份标准格式的洛雪自定义音源脚本,脚本内已内置你的 Key、v1 接口地址与更新自检逻辑,导入即用。
浏览器打开下面的地址(把 你的Key 换成后台生成的 Key),就会下载 xdyy-xxxxxxxx.js 脚本文件:
# 洛雪音源脚本下载地址(key 必填)
https://xd.xm5201314.top/v2/index.php?key=你的Key
# Key 缺失或无效时返回 403 纯文本提示:
# 缺少 key 参数,正确格式: /v2/index.php?key=你的Key
# Key 无效或已停用,请联系管理员
下发的脚本已封装好全部逻辑,这里说明它内部如何请求 v1 聚合接口,方便你排查问题或自研脚本对齐契约:
// ── v2 下发脚本内置逻辑(导入即用,无需手写)──
// 脚本头部常量(下发时已替换为你的专属值)
const API_URL = "https://xd.xm5201314.top/v1/index.php"; // v1 聚合接口
const API_KEY = "你的Key"; // 鉴权凭证
const SCRIPT_MD5 = "脚本内容MD5"; // 更新自检指纹
// 取歌曲ID:酷狗用 hash,QQ 用 songmid,其余平台用 id
const songId = musicInfo.hash ?? musicInfo.songmid ?? musicInfo.id;
// 请求播放链接:POST /music/url + X-Api-Key 鉴权头
const resp = await httpFetch(`${API_URL}/music/url?key=${API_KEY}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": API_KEY, // ★ 鉴权头,必带
},
body: {
source: "kg", // 平台标识:kg/kw/mg/wy/tx/bilibili/qishui…
musicId: songId, // 歌曲ID
quality: "320k" // 音质:128k/320k/flac/flac24bit/hires…
}
});
// ── 响应契约(switch code)──
// 200 → { code: 200, url: "https://…" } 成功,url 即播放直链
// 403 → 鉴权失败(Key 无效或已停用)
// 429 → 请求过速,稍后重试
// 500 → { code: 500, message: "获取URL失败, …" } 具体失败原因看 message
SCRIPT_MD5 指纹,播放器启动时会 GET /script/lxmusic?checkUpdate={MD5}&key={KEY} 比对版本,服务端脚本一更新,客户端即可收到 updateAlert 更新提醒。xdyy-xxxxxxxx.js(桌面版也可直接把文件拖入窗口)。适用于 MusicFree 播放器。访问 v3 地址即下载一份 CommonJS 插件脚本,可直接在「插件管理」中导入。它作为音源插件工作:先搜索歌曲,再把音源切换到「xd音源」播放。
浏览器打开下面的地址(把 你的Key 换成后台生成的 Key),就会下载 xdyy-musicfree-xxxxxxxx.js 插件文件:
# MusicFree 插件下载地址(key 必填)
https://xd.xm5201314.top/v3/index.php?key=你的Key
# 也可以在 MusicFree「插件管理 → 从网络安装」
# 直接填入上面的地址,省去手动下载
插件脚本为 CommonJS 格式,核心是 getMediaSource 方法——把歌曲对象映射成播放地址:
// ── v3 下发插件的元信息 ──
module.exports = {
platform: "xd音源", // 音源切换列表里显示的名字
version: "1.1.0",
appVersion: ">0.1.0-alpha.0", // 兼容的 MusicFree 版本
srcUrl: "https://xd.xm5201314.top/v3/index.php?key=你的Key", // 自动更新源
cacheControl: "no-cache", // 每次拉取最新脚本
primaryKey: ["id", "platform"],
getMediaSource: getMediaSource, // ★ 核心方法
};
// ── 核心方法:歌曲 → 播放地址 ──
async function getMediaSource(musicItem, quality) {
// 1) 平台识别:中/英文名自动映射("酷狗"→kg,"网易云"→wy)
const source = mapPlatform(musicItem.platform || musicItem.$platform);
// 2) 音质映射:low→128k / standard→320k / high→flac / super→hires
const q = QUALITY_MAP[quality] || "320k";
// 3) 歌曲ID:酷狗=hash,QQ=songmid,其余=id
const musicId = musicItem.hash || musicItem.songmid || musicItem.id;
// 4) 调 v1 聚合接口取直链(GET,参数全在 URL,兼容所有引擎)
// {API_URL}/music/url?key=…&source=…&musicId=…&quality=…
const body = await callV1(source, musicId, q);
return body ? { url: body.url } : null; // null 时交给下一个插件
}
插件会自动识别歌曲来源平台的名称(中英文都认),映射为 v1 接口的 source 标识:
| musicItem.platform(识别规则) | source 标识 | musicId 取值 |
|---|---|---|
| 酷狗 / kg / kugou | kg | hash |
| 酷我 / kw / kuwo | kw | id |
| 咪咕 / mg / migu | mg | id |
| 网易 / wy / netease / 163 | wy | id |
| qq / 腾讯 / tx / tencent | tx | songmid |
| bili / b站 / 哔哩 | bilibili | id(视频/BV) |
| 汽水 / qishui / douyin / 抖音 | qishui | id |
| 全民K歌 / qmkg | qmkg | shareid 或自带 url |
| 快手 / ks / kuaishou | kuaishou | manifest 直取 |
| youtube / yt / 油管 | youtube | id |
| 喜马拉雅 / ximalaya / xmly | xmly | id |
xdyy-musicfree-xxxxxxxx.js。v2 / v3 脚本最终都会调用 v1 聚合接口取播放直链,这里统一说明各参数的取值规则。
| 参数 | 必填 | 说明 |
|---|---|---|
key | 必填 | 后台生成的 API Key。可放 URL 参数或 X-Api-Key 请求头(v2 走请求头,v3 两者都带,兼容性最好)。无效或停用返回 403。 |
source | 必填 | 音源平台标识,见上方平台映射表,共 11 个:kg / kw / mg / wy / tx / bilibili / qishui / qmkg / kuaishou / youtube / xmly。 |
musicId | 必填 | 歌曲唯一标识。酷狗传 hash,QQ 传 songmid,其余平台传 id;B站传视频 ID,全民K歌传 shareid。 |
quality | 可选 | 音质标识,默认 320k。各平台支持范围不同,见下方音质表;不支持的音质会自动就近降级。 |
标签越华丽代表音质越高:128kflachires
| 平台 | source | 支持的音质 |
|---|---|---|
| 酷狗 | kg | 128k320kflacflac24bithiresatmosmaster |
| QQ音乐 | tx | 128k320kflacflac24bithiresatmosatmos_plusmaster |
| 网易云 | wy | 128k320kflacflac24bithiresatmosmaster |
| 咪咕 | mg | 128k320kflacflac24bithires |
| 酷我 | kw | 128k320kflacflac24bithires |
| B站 | bilibili | 128k320kflac |
| 汽水音乐 | qishui | 128k320kflac |
| 全民K歌 | qmkg | 128k320k |
| 快手 | kuaishou | 128k320k |
| YouTube | youtube | 128k320k |
| 喜马拉雅 | xmly | 128k320k |
low→128k、standard→320k、high→flac、super→hires,选不到的档位自动回退 320k。| code | 含义 | 处理建议 |
|---|---|---|
200 | 成功 | url 字段即播放直链,已通过 200/206 + 音频类型校验,可直接播放。 |
403 | 鉴权失败 | Key 缺失、无效或已停用,到后台核对 Key 状态。 |
429 | 请求过速 | 触发频率限制,稍后重试或给请求加节流。 |
500 | 获取失败 | 取流失败,message 字段含具体原因(如「歌曲不存在」)。 |
no-cache,一般无此问题。/v1/index.php/music/url,带 X-Api-Key 请求头和 {source, musicId, quality} JSON 体即可,响应契约与本文档一致。