音乐与媒体
GET /cm/ncm/album
音乐与媒体 · /ncm/album
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '缺少 id' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/album?id=<id>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | d |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3742。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/artist
音乐与媒体 · /ncm/artist
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
| query | limit | 100(空值时回退) |
| query | offset | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '分页参数错误' |
| 400 | '缺少 id' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/artist?id=<id>&limit=<limit>&offset=<offset>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | d |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3754。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/artist/albums
音乐与媒体 · /ncm/artist/albums
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
| query | limit | 30(空值时回退) |
| query | offset | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '分页参数错误' |
| 400 | '缺少 id' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/artist/albums?id=<id>&limit=<limit>&offset=<offset>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | d |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3771。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/comment-count
音乐与媒体 · /ncm/comment-count
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/comment-count?id=<id>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | out |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3993。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/comment/floor
音乐与媒体 · /ncm/comment/floor
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | cid | 0(空值时回退) |
| query | id | 0(空值时回退) |
| query | offset | '0' |
| query | type | 未在 get 中指定 |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '参数错误' |
| 400 | '缺少 id/cid' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/comment/floor?type=<type>&offset=<offset>&id=<id>&cid=<cid>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | out |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3244。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/comments
音乐与媒体 · /ncm/comments
权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
| query | limit | 20(空值时回退) |
| query | offset | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | 'id 参数错误' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/comments?id=<id>&offset=<offset>&limit=<limit>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | out |
实现定位:backend/cm_server.py:4976。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/hot
音乐与媒体 · /ncm/hot
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/hot' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
list | lst |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
list | json.loads(cached) |
实现定位:backend/cm_server.py:3266。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/lyric
歌词归一化:{lines:[{t,txt,trans,roma,w?,words?,wSynth?}],isYrc,source,wordLevel};t/w 单位为毫秒,w=[起始,字/词];官方 YRC → LDDC 逐字 → 按行时长估算(wSynth)
权限:公开。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/lyric?id=<id>'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | out |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3956。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/playlist
音乐与媒体 · /ncm/playlist
权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | id | 0(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | 'id 参数错误' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/playlist?id=<id>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
id | pl.get('id') |
name | pl.get('name') |
cover | pl.get('coverImgUrl') or '' |
creator | (pl.get('creator') or {}).get('nickname') or '' |
description | pl.get('description') or '' |
trackCount | pl.get('trackCount') or 0 |
songs | cm_ncm.song_detail(ids[:100]) if ids else [] |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:4003。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/search
网易云搜索代理;type=lyric 按歌词搜索(1006),songs 含命中行及前后文 lyric/lyricContext,分页使用 totals.song/hasMore.song;服务端等待并自动重试补全;失败通过 lyricContextStatus 明示,原命中单句仅在 lyricMatch。详见 /api-docs/reference/guide-search-lyrics-api/
权限:公开。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | keywords | ''(空值时回退) |
| query | limit | 30 / 1 / 50(默认 / 下限 / 上限) |
| query | offset | 0 / 0 / 1000(默认 / 下限 / 上限) |
| query | type | ''(空值时回退) |
| query | types | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '歌词搜索请单独指定 type=lyric' |
| 400 | '缺少 keywords' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/search?limit=<limit>&offset=<offset>&keywords=<keywords>&type=<type>&types=<types>'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | d |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3616。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/song/detail
歌曲详情(ids=逗号分隔,最多 100;分享落地页与客户端使用)
权限:公开。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | ids | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | 'ids 参数错误' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/song/detail?ids=<ids>'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
songs | cm_ncm.song_detail(id_list) |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | json.loads(cached) |
实现定位:backend/cm_server.py:3942。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/song/url
播放地址解析(仅限注册用户;level / maxBr 码率上限 / refresh 卡顿换线 / alts 候选边缘;返回 host 与耗时诊断)
权限:Bearer。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | alts | 未在 get 中指定 |
| query | host | ''(空值时回退) |
| query | id | 0(空值时回退) |
| query | immerse | None(空值时回退) |
| query | level | 'auto'(空值时回退) |
| query | maxBr | 0(空值时回退) |
| query | maxbr | 0(空值时回退) |
| query | refresh | 未在 get 中指定 |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | 'id 参数错误' |
| 400 | '缺少 id' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/song/url?level=<level>&id=<id>&immerse=<immerse>&maxBr=<maxBr>&maxbr=<maxbr>&refresh=<refresh>&alts=<alts>&host=<host>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | out |
实现定位:backend/cm_server.py:3788。接口参数和返回条件均来自该路由分支。
POST /cm/ncm/song/url/feedback
播放卡顿上报(event=stall|ok,服务端据此在换线时避开问题 CDN 边缘)
权限:公开。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | 'event 必须是 stall 或 ok' |
| 400 | 'host 不是可识别的网易云边缘' |
| 400 | '上报未被接受' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncm/song/url/feedback'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
host | host |
event | event |
HTTP 429
| 字段 | 取值/生成逻辑 |
|---|---|
error | '操作过于频繁' |
实现定位:backend/cm_server.py:3822。接口参数和返回条件均来自该路由分支。
GET /cm/ncm/song/url/health
CDN 边缘健康度与音质档位策略(诊断用)
权限:公开。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncm/song/url/health'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
edgeHosts | {h: v for h, v in sorted(hosts.items(), key=lambda kv: (-kv[1]['stalls'], kv[0]))} |
edgesVerified | cm_stream.edges().size() |
inflight | _resolve_flight.inflight() |
policy | {'tiers': list(cm_stream.TIERS), 'probeTiers': list(cm_stream.PROBE_TIERS), 'nominalBr': cm_stream.NOMINAL_BR, 'edgeCandidates': list(cm_str |
HTTP 429
| 字段 | 取值/生成逻辑 |
|---|---|
error | '操作过于频繁' |
实现定位:backend/cm_server.py:3845。接口参数和返回条件均来自该路由分支。
GET /cm/songs/status
歌曲列表状态:liked/faved 为本地状态,counts 为本地计数,ncmCounts 为网易云红心数
权限:可选登录。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | ids | '' |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | 'ids 参数错误' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/songs/status?ids=<ids>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
counts | cm_db.like_counts(id_list) if id_list else {} |
ncmCounts | _ncm_like_counts(id_list) if id_list else {} |
liked | [] |
faved | [] |
实现定位:backend/cm_server.py:3161。接口参数和返回条件均来自该路由分支。