音乐服务

音乐聚合能力:爱听音乐网抓取(首页/歌手/歌曲/搜索)与小影音乐自有曲库的增删改查。当前接入 2 条线路。

/api/music/

服务说明

音乐服务聚合两条线路:爱听音乐网(2t58)提供首页榜单、歌手、歌曲详情、播放链接与歌词、关键词搜索,适合直接搭建在线音乐搜索与播放页面;小影音乐是平台自有曲库,提供音乐与播放源的增删改查,以及 JSON 批量导入、导出。

两条线路均需项目签名。2t58 线路的数据来自外部站点实时抓取,播放链接可能带时效,不建议在客户端长期缓存。

小影音乐的导入接口单文件不超过 10MB、单次不超过 9999 条,且不做去重;导出接口在结果超过 9999 条时返回一个 zip 压缩包(内含多个分片 json),可直接回灌导入。

响应格式

所有接口返回同一个 JSON 信封,业务数据都在 data 里:

{
  "code": 10000,
  "msg": "成功",
  "data": { ... }
}
  • code:业务状态码,10000 表示成功;其余为各类错误,完整清单见「错误码」页。
  • msg:给人看的提示文案,可直接展示给终端用户,但不要用它做逻辑判断。
  • data:业务数据;出错时通常为 null。各接口 data 的具体字段见该接口的「响应说明」。

判断成功与否请看 code,不要依赖 HTTP 状态码。 查看完整错误码

爱听音乐网 2t58

2t58.com 网页抓取(只读) 需签名

抓取热门/歌手/歌曲/搜索数据。url 参数必须为 2t58.com 域名地址。

GET /api/music/2t58/home 累计调用 8 次

首页数据

返回热门歌手、歌曲飙升榜、流行趋势榜三个模块。

响应说明 外层统一格式
字段 类型 说明
hot_singers array 热门歌手列表
hot_singers[].name string 歌手名
hot_singers[].image string 头像图片地址
hot_singers[].singer_url string 歌手页地址
rising_chart array 歌曲飙升榜
rising_chart[].song_name string 歌曲名
rising_chart[].artists array 歌手名列表
rising_chart[].song_url string 歌曲页地址
trend_chart array 流行趋势榜
trend_chart[].song_name string 歌曲名
trend_chart[].artists array 歌手名列表
trend_chart[].song_url string 歌曲页地址
返回示例
{
  "hot_singers": [
    {"name": "示例歌手", "image": "https://img.2t58.com/xxx.jpg",
     "singer_url": "https://www.2t58.com/singer/bm1z/1.html"}
  ],
  "rising_chart": [
    {"song_name": "示例歌曲", "artists": ["示例歌手"],
     "song_url": "https://www.2t58.com/song/d3dkc2t3.html"}
  ],
  "trend_chart": [
    {"song_name": "示例歌曲", "artists": ["示例歌手"],
     "song_url": "https://www.2t58.com/song/d3dkc2t3.html"}
  ]
}
GET /api/music/2t58/singer 累计调用 6 次

歌手详情

歌手基本信息 + 歌曲列表(含分页)。

2t58.com 歌手歌曲列表页完整地址(必填)

响应说明 外层统一格式
字段 类型 说明
singer object 歌手基本信息
singer.name string 歌手名称
singer.cover string 封面图地址
singer.intro string 歌手简介
songs array 歌曲列表
songs[].song_name string 歌曲名
songs[].artists array 歌手名列表
songs[].song_url string 歌曲页地址
pagination object 分页信息;无分页时为 null
pagination.current object 当前页 {page,url}
pagination.current.page int 页码
pagination.current.url string 页面地址
pagination.first object 首页 {page,url};不存在为 null
pagination.prev object 上一页 {page,url};不存在为 null
pagination.next object 下一页 {page,url};不存在为 null
pagination.last object 尾页 {page,url};不存在为 null
返回示例
{
  "singer": {"name": "示例歌手", "cover": "https://img.2t58.com/xxx.jpg",
             "intro": "歌手简介"},
  "songs": [
    {"song_name": "示例歌曲", "artists": ["示例歌手"],
     "song_url": "https://www.2t58.com/song/d3dkc2t3.html"}
  ],
  "pagination": {
    "current": {"page": 1, "url": "https://www.2t58.com/singer/bm1z/1.html"},
    "first": null,
    "prev": null,
    "next": {"page": 2, "url": "https://www.2t58.com/singer/bm1z/2.html"},
    "last": {"page": 5, "url": "https://www.2t58.com/singer/bm1z/5.html"}
  }
}
GET /api/music/2t58/song 累计调用 6 次

歌曲详情

歌曲基本信息 + 播放链接 + 歌词 + 每日推荐。

2t58.com 歌曲详情页完整地址(必填)

响应说明 外层统一格式
字段 类型 说明
song object 歌曲基本信息
song.song_name string 歌曲名
song.artists array 歌手名列表
song.cover string 封面图地址
play_url string 播放直链(解密后);失败为空字符串
lyrics string LRC 格式歌词;失败为空字符串
daily_recommend array 随机推荐列表
daily_recommend[].song_name string 歌曲名
daily_recommend[].artists array 歌手名列表
daily_recommend[].song_url string 歌曲页地址
返回示例
{
  "song": {"song_name": "示例歌曲", "artists": ["示例歌手"],
           "cover": "https://img.2t58.com/xxx.jpg"},
  "play_url": "https://music.2t58.com/xxx.mp3",
  "lyrics": "示例歌词",
  "daily_recommend": [
    {"song_name": "示例歌曲", "artists": ["示例歌手"],
     "song_url": "https://www.2t58.com/song/d3dkc2t3.html"}
  ]
}

音乐服务 API 常见问题

音乐 API 提供哪些能力?
两条线路:爱听音乐网抓取(首页 home、歌手 singer、歌曲 song、搜索 search),以及小影音乐自有曲库(增删改查、播放源管理、批量导入导出)。典型用法是「先用第三方曲库找歌,再把要长期用的沉淀到自己的库」。
能按歌名或歌手搜歌吗?
能,搜索端点传关键词返回歌曲列表,每条带歌曲 ID;再用歌曲详情取完整信息与播放地址。
自建曲库怎么批量导入?
用批量导入端点(/api/music/xiaoying/import)一次性写入多条,导出端点可把现有数据导成结构化文本,便于迁移与备份。
播放地址能直接给前端用吗?
歌曲详情返回上游给的播放地址,是否带时效、能否跨域以上游为准;前端播放前建议判断地址可用性,失败时重新取详情,不要长期缓存直链。
音乐服务接口怎么接入?需要签名吗?
音乐服务挂在 /api/music/ 前缀下:需签名的端点按 app_id + timestamp + nonce + sign(HMAC-SHA256,密钥为 APPSECRET)调用,开放端点直接请求即可。拿不准时用本页右侧的「在线调试」—— 它会代签并把你实际发出的请求与真实响应都回显出来。
音乐服务的返回结构和错误码怎么看?
全部接口统一返回 {code, msg, data}:code=10000 表示成功,2xxxx 为业务错误,3xxxx / 4xxxx / 5xxxx 分别为外部依赖、客户端与系统错误。完整含义与处理建议见「错误码总表」(/docs/errors/)。
小影API · 通用 API 聚合服务