音乐API文档音乐API文档
主页
MusicOpenAPI
主页
MusicOpenAPI
  • MusicOpenAPI

MusicOpenAPI

所有接口均来自互联网,本站不做任何形式的存储,请自行判断版权问题

工作原理

跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API

功能特性

  1. 获取推荐歌曲
  2. 获取推荐歌单
  3. 获取新歌速递
  4. 获取排行榜
  5. 获取歌单详情
  6. 获取排行榜详情
  7. 搜索歌曲
  8. 获取歌曲详情
  9. 获取歌曲播放链接
  10. 获取歌曲歌词

接口文档

注意

本项目仅供学习使用,请尊重版权,请勿利用此项目从事商业行为

重要信息

所有接口的 API 域名为:https://openapi.music.xzlei.xyz

获取推荐歌曲

接口地址

/recommend/songs

请求方式

GET/POST

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/recommend/songs";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/recommend/songs")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/recommend/songs"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/recommend/songs";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data": [
        {
            "id": 123456,
            "audio_name": "歌曲名称",
            "artist": "歌手名称",
            "album_name": "专辑名称",
            "duration": 240000,
            "cover": "封面图片链接",
            "hash": "歌曲hash",
            "album_id":123456
        },
        ...
    ]
}

获取推荐歌单

接口地址

/recommend/playlists

请求方式

GET/POST

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/recommend/playlists";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/recommend/playlists")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/recommend/playlists"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/recommend/playlist";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data": [
        {
            "id": 123456,
            "name": "歌单名称",
            "intro": "歌单简介",
            "songTotal": 100,
            "cover": "歌单封面链接"
        },
        ...
    ]
}

获取新歌速递

接口地址

/song/new/songs

请求方式

GET/POST

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/song/new/songs";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/song/new/songs")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/song/new/songs"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/song/new/songs";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data": [
        {
            "id": 123456,
            "audio_name": "歌曲名称",
            "artist": "歌手名称",
            "album_name": "专辑名称",
            "duration": 240000,
            "cover": "封面图片链接",
            "hash": "歌曲hash",
            "album_id":123456
        },
        ...
    ]
}

获取排行榜

接口地址

/toplist

请求方式

GET/POST

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/toplist";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/toplist")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/toplist"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/toplist";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data":[
        {
            "id": 123456,
            "name": "排行榜名称",
            "intro": "排行榜简介",
            "songTotal": 100,
            "cover": "排行榜封面链接"
        },
        ...
    ]
}

获取歌单详情

接口地址

/playlist/detail

请求方式

GET/POST

参数名类型必填说明
idstring是歌单id

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/playlist/detail?id=123456";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/playlist/detail?id=123456")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/playlist/detail?id=123456"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/playlist/detail?id=123456";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data":[
      {
         "id": 123456,
          "audio_name": "歌曲名称",
          "artist": "歌手名称",
          "album_name": "专辑名称",
          "duration": 240000,
          "cover": "封面图片链接",
          "hash": "歌曲hash",
          "album_id":123456
      }
      ...
    ]
}

获取排行榜详情

接口地址

/toplist/detail

请求方式

GET/POST

参数名类型必填说明
idstring是排行榜id

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/toplist/detail?id=123456";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/toplist/detail?id=123456")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/toplist/detail?id=123456"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/toplist/detail?id=123456";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data": [
      {
        "id": 123456,
        "audio_name": "歌曲名称",
        "artist": "歌手名称",
        "album_name": "专辑名称",
        "duration": 240000,
        "cover": "封面图片链接",
        "hash": "歌曲hash",
        "album_id":123456
      }
      ...
    ]
}

获取歌曲搜索结果

接口地址

/search

请求方式

GET/POST

参数名类型必填说明
qstring是搜索关键词

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/search?q=歌曲名称";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/search?q=歌曲名称")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/search?q=歌曲名称"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/search?q=歌曲名称";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
    "code": 200,
    "data": [
      {
        "id": 123456,
        "audio_name": "歌曲名称",
        "artist": "歌手名称",
        "album_name": "专辑名称",
        "duration": 240000,
        "cover": "封面图片链接",
        "hash": "歌曲hash",
        "album_id":123456
      }
    ]
}

获取歌曲详情

接口地址

/song/detail

请求方式

GET/POST

参数名类型必填说明
hashstring是歌曲的hash

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/song/detail?hash=02FDCA4708C32D677CDA785296C4E33D";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/song/detail?hash=02FDCA4708C32D677CDA785296C4E33D")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/song/detail?hash=02FDCA4708C32D677CDA785296C4E33D"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/song/detail?hash=02FDCA4708C32D677CDA785296C4E33D";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
  "code": 200,
  "data": {
    "id": 123456,
    "name": "歌曲名称",
    "artist": "歌手名称",
    "album": "专辑名称",
    "duration": 240000,
    "cover": "封面图片链接",
    "hash": "歌曲hash"
  }
}

获取歌曲播放链接

接口地址

/song/play/url

请求方式

GET/POST

参数名类型必填说明
hashstring是歌曲的hash

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/song/play/url?hash=歌曲hash";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/song/play/url?hash=歌曲hash")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/song/play/url?hash=歌曲hash"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/song/play/url?hash=歌曲hash";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
  "code": 200,
  "data": {
    "url": "歌曲播放链接"
  }
}

注意

如果歌曲需要付费或者无音源,则返回的链接为空。

获取歌曲歌词

接口地址

/song/lyric

请求方式

GET/POST

参数名类型必填说明
hashstring是歌曲的hash
keywordstring否歌词关键词
timeLengthnumber否歌词时间长度

示例请求代码:

Java
import cn.hutool.http.HttpUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class JavaHutoolApiRequest {
    public static void main(String[] args) {
        String apiUrl = "https://openapi.music.xzlei.xyz/song/lyric?hash=歌曲hash";
        try {
            String responseString = HttpUtil.get(apiUrl);
            System.out.println("请求成功: " + responseString);
        } catch (Exception e) {
            System.err.println("请求过程中发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
JavaScript
axios
  .post("https://openapi.music.xzlei.xyz/song/lyric?hash=歌曲hash")
  .then((response) => {
    console.log("响应内容:", response.data);
  })
  .catch((error) => {
    console.error("请求失败: ", error);
  });
Python
import requests

url = "https://openapi.music.xzlei.xyz/song/lyric?hash=歌曲hash"
response = requests.get(url)
if response.status_code == 200:
    print("请求成功:", response.json())
else:
    print("请求失败:", response.status_code)
ArkTs
import { rcp } from "@kit.RemoteCommunicationKit";

const session = rcp.createSession({
  headers: header,
});
const url = "https://openapi.music.xzlei.xyz/song/lyric?hash=歌曲hash";
session
  .get(url)
  .then((res: rcp.Response) => {
    // 业务逻辑处理
  })
  .catch((err: Error) => {
    // 错误处理
  })
  .finally(() => {
    session.close();
  });

返回示例:

{
  "code": 200,
  "data": "[00:00.00] 歌词内容\n[00:10.00] 第二行歌词\n..."
}

注意

如果歌曲没有歌词,则返回的歌词为空。

更多接口正在开发中,敬请期待。