JOOX音乐(XX音乐海外版)

提供音乐搜索、播放链接获取等功能

API 文档

  • 接口地址: https://apicx.asia/api/joox_music_api
  • 返回格式: JOSN
  • 请求方式: GET
  • 请求示例: https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token

请求参数说明:

名称 必填 类型 说明
token string 登录获取token
keywordstring输入想要搜索的歌曲名或者歌手、专辑
nstring默认n=1{1、2、3...以此类推},序号选择
qualitystring默认320,可自定义{128、320},音质
sizeystring默认500,可自定义{300、500},专辑图
示例1string获取歌曲列表(默认):https://apicx.asia/api/joox_music_api?keyword=周杰伦​&token=你的token
示例2string获取指定歌曲详情:https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&quality=320&token=你的token​​

返回参数说明:

名称 类型 说明
code integer 返回的状态码
data object 返回的数据/数据对象
msg string 返回的消息
time string 请求时间
data.song_info.idstringid
data.song_info.namestringname
data.song_info.artist[]stringartist
data.song_info.albumstringalbum
data.song_info.pic_idstringpic_id
data.song_info.url_idstringurl_id
data.song_info.lyric_idstringlyric_id
data.song_info.sourcestringsource
data.song_info.numnumbernum
data.play_url.urlstringurl
data.play_url.sizenumbersize
data.play_url.brnumberbr
data.lyric.lyricstringlyric
data.lyric.tlyricstringtlyric
data.cover.urlstringurl

返回示例:

{
  "code": 200,
  "data": {
    "song_info": {
      "id": "Ii1l6fZ4vC6rURvKJV_TfQ==",
      "name": "擱淺",
      "artist": [
        "周杰倫"
      ],
      "album": "七里香",
      "pic_id": "Ii1l6fZ4vC6rURvKJV_TfQ==",
      "url_id": "Ii1l6fZ4vC6rURvKJV_TfQ==",
      "lyric_id": "Ii1l6fZ4vC6rURvKJV_TfQ==",
      "source": "joox",
      "num": 1
    },
    "play_url": {
      "url": "https://hk.stream.music.joox.com/M800Z4E4267CE4DA9E.mp3?vkey=9C1436B203CF1A52C45AEE359F7AF3DF6BD388724B278FBC73CA3A8F2113BF8F73B0B049A0076A7E4DFE00476FA4492ED166CAB4E25E923E&hdnts=exp=1759407241~acl=/*~hmac=3740a5bd9bae0c23458444bf8c3d55f1b8d6c2d63720ac24a0ef1e4e227b6ed4&guid=JOOX@WEB_OPENUDID&uin=0&fromtag=8",
      "size": 0,
      "br": 320
    },
    "lyric": {
      "lyric": "[ti:擱淺]\n[ar:周杰倫]\n[al:七里香]\n[by:]\n[offset:0]\n[00:00.00]擱淺 - 周杰倫 (Jay Chou)\n[00:04.08]詞:宋健彰\n[00:08.17]曲:周杰倫\n[00:12.25]編曲:鍾興民\n[00:16.34]久未放晴的天空\n[00:20.13]依舊留著你的笑容\n[00:24.25]哭過卻無法掩埋歉疚\n[00:30.95]\n[00:31.92]風箏在陰天擱淺\n[00:35.33]\n[00:35.87]想念還在等待救援\n[00:39.48]\n[00:40.02]我拉著線複習你給的溫柔\n[00:46.08]\n[00:46.67]曝晒在一旁的寂寞\n[00:49.99]\n[00:50.72]笑我給不起承諾\n[00:53.98]怎麼會怎麼會你竟原諒了我\n[01:00.29]\n[01:01.05]我只能永遠讀著對白\n[01:05.61]讀著我給你的傷害\n[01:09.53]我原諒不了我\n[01:12.19]就請你當作我已不在\n[01:16.78]我睜開雙眼看著空白\n[01:21.26]忘記你對我的期待\n[01:25.29]讀完了依賴\n[01:27.91]我很快就離開\n[01:34.02]\n[01:54.05]久未放晴的天空\n[01:57.94]依舊留著你的笑容\n[02:01.79]\n[02:02.30]哭過卻無法掩埋歉疚\n[02:08.58]\n[02:09.64]風箏在陰天擱淺\n[02:12.91]\n[02:13.50]想念還在等待救援\n[02:18.41]我拉著線複習你給的溫柔\n[02:23.72]\n[02:24.29]曝晒在一旁的寂寞\n[02:27.55]\n[02:28.52]笑我給不起承諾\n[02:31.80]怎麼會怎麼會你竟原諒了我\n[02:38.17]\n[02:39.01]我只能永遠讀著對白\n[02:43.32]讀著我給你的傷害\n[02:47.30]我原諒不了我\n[02:50.06]就請你當作我已不在\n[02:54.58]我睜開雙眼看著空白\n[02:58.95]忘記你對我的期待\n[03:02.98]讀完了依賴\n[03:05.06]\n[03:05.78]我很快就\n[03:07.91]\n[03:08.98]我只能永遠讀著對白\n[03:14.63]讀著我給你的傷害\n[03:18.53]我原諒不了我\n[03:21.27]就請你當作我已不在\n[03:25.24]\n[03:26.10]我睜開雙眼看著空白\n[03:30.20]忘記你對我的期待\n[03:34.18]讀完了依賴\n[03:36.39]\n[03:37.05]我很快就離開\n[999:00.00]***歌词来自第三方***\n",
      "tlyric": ""
    },
    "cover": {
      "url": "https://image.joox.com/JOOXcover/0/0aac9a3d3fb9e2fb/500"
    }
  },
  "timestamp": "2025-10-02 18:34:02",
  "cached_time": "2025-10-02 18:34:02"
}

错误码格式说明:

名称 类型 说明
200 string 返回状态码(成功)
500 string 返回的状态码(失败)

代码示例:


<?php
// 初始化cURL会话
$ch = curl_init();
// 设置请求URL,用户中心获取token,自行替换其他参数
curl_setopt($ch, CURLOPT_URL, "https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token");
// 设置请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: YOUR_TOKEN'
));
// 返回响应而不是直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行请求并获取响应
$response = curl_exec($ch);
// 关闭cURL会话
curl_close($ch);
// 将响应解析为JSON格式
$data = json_decode($response, true);
// 输出JSON数据
print_r($data);
?>
            

import requests

# 设置请求URL和头部,用户中心获取token,自行替换其他参数
url = "https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token"
headers = {
    'Authorization': 'YOUR_TOKEN'
}

# 发送GET请求
response = requests.get(url, headers=headers)
# 将响应解析为JSON格式
data = response.json()
# 输出JSON数据
print(data)
            

// 发送GET请求,用户中心获取token,自行替换其他参数
fetch("https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token", {
    method: "GET",
    headers: {
        "Authorization": "YOUR_TOKEN"
    }
})
.then(response => response.json()) // 将响应解析为JSON格式
.then(data => console.log(data)) // 输出JSON数据
.catch(error => console.error('Error:', error));
            

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class Main {
    public static void main(String[] args) throws Exception {
        // 创建URL对象,用户中心获取token,自行替换其他参数
        URL url = new URL("https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token");
        // 打开连接
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        // 设置请求方法
        conn.setRequestMethod("GET");
        // 设置请求头
        conn.setRequestProperty("Authorization", "YOUR_TOKEN");

        // 读取响应
        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String inputLine;
        StringBuffer content = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            content.append(inputLine);
        }
        in.close();
        // 输出JSON数据
        System.out.println(content.toString());
    }
}
            

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        using (HttpClient client = new HttpClient()) {
            // 设置请求头
            client.DefaultRequestHeaders.Add("Authorization", "YOUR_TOKEN");
            // 发送GET请求,用户中心获取token,自行替换其他参数
            HttpResponseMessage response = await client.GetAsync("https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token");
            // 将响应解析为字符串
            string responseBody = await response.Content.ReadAsStringAsync();
            // 输出JSON数据
            Console.WriteLine(responseBody);
        }
    }
}
            

require 'net/http'
require 'uri'

# 创建URI对象,用户中心获取token,自行替换其他参数
uri = URI.parse("https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token")
# 创建GET请求
request = Net::HTTP::Get.new(uri)
# 设置请求头
request["Authorization"] = "YOUR_TOKEN"

# 发送请求并获取响应
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

# 输出JSON数据
puts response.body
            

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    client := &http.Client{}
    // 创建GET请求,用户中心获取token,自行替换其他参数
    req, err := http.NewRequest("GET", "https://apicx.asia/api/joox_music_api?keyword=周杰伦&n=1&token=你的token", nil)
    if err != nil {
        panic(err)
    }
    // 设置请求头
    req.Header.Add("Authorization", "YOUR_TOKEN")

    // 发送请求并获取响应
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    // 读取响应体
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    // 输出JSON数据
    fmt.Println(string(body))
}