Skip to content

获取歌单中的歌曲 ​

这个模块先读取歌单详情中的 trackIds,选出指定范围的 ID,再请求这些歌曲的详情。一次调用包含两次上游读取,共用同一次调用的身份和总期限。

接口信息 ​

项目值
接口地址/playlist/track/all
请求方式GET / POST
需要登录公开歌单可尝试游客调用,实际可见范围取决于权限和上游返回
对应模块playlist_track_all

请求参数 ​

参数类型必填默认值说明
idnumber 或 string是无歌单 ID
limitnumber 或数字字符串否1000本次选择的歌曲数
offsetnumber 或数字字符串否0从第几个 ID 开始,按零起算
snumber 或数字字符串否8传给上游歌单详情请求的收藏者数量参数

比如 limit=50&offset=0 选择前 50 首,limit=50&offset=50 选择接下来的 50 首。当前实现不会自动循环到歌单末尾,超过 1000 首时应继续分页。

HTTP 示例 ​

bash
curl 'http://127.0.0.1:3021/playlist/track/all?id=24381616&limit=50&offset=0'

编程式调用 ​

ts
import { playlistTrackAll } from 'hana-music-api';

const result = await playlistTrackAll(
  { id: '24381616', limit: 50, offset: 0 },
  { cookie: 'MUSIC_U=your-cookie' },
);
console.log(result.body);

能查到哪些歌曲,取决于上游返回的 trackIds 和当前身份权限。接口名中的“全部”不保证游客能读取完整歌单,也不表示一次返回任意数量的歌曲。

返回内容 ​

body 是第二次读取(歌曲详情)的返回,声明了 code、songs 和宽松的 privileges,每首歌的字段见 返回体结构 里的“歌曲”。只有 code、songs、songs[].id 收紧;privileges 是宽松字段,里面每项权限的 id 也宽松。结构定义和类型是 PlaylistTrackAllBody。

第一次读取的歌单详情里,trackIds 不是数组、或者本页要用的某一项没有编号时,同样以 status: 502 拒绝,不会发出第二次读取。

Released under the MIT License.