跳到主要内容

音乐与媒体

GET /cm/ncm/album​

音乐与媒体 · /ncm/album

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)

表格列出实际代码读取的字段;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

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)
querylimit100(空值时回退)
queryoffset0(空值时回退)

表格列出实际代码读取的字段;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

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)
querylimit30(空值时回退)
queryoffset0(空值时回退)

表格列出实际代码读取的字段;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

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)

表格列出实际代码读取的字段;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

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
querycid0(空值时回退)
queryid0(空值时回退)
queryoffset'0'
querytype未在 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 登录态;房间/绑定等条件另见校验。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)
querylimit20(空值时回退)
queryoffset0(空值时回退)

表格列出实际代码读取的字段;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

字段取值/生成逻辑
listlst

HTTP 200

字段取值/生成逻辑
listjson.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)

权限:公开。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)

表格列出实际代码读取的字段;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

权限:路由未直接调用登录检查;委托处理器可能另行校验,见说明。

请求参数​

位置字段默认/读取方式
queryid0(空值时回退)

表格列出实际代码读取的字段;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

字段取值/生成逻辑
idpl.get('id')
namepl.get('name')
coverpl.get('coverImgUrl') or ''
creator(pl.get('creator') or {}).get('nickname') or ''
descriptionpl.get('description') or ''
trackCountpl.get('trackCount') or 0
songscm_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/

权限:公开。

请求参数​

位置字段默认/读取方式
querykeywords''(空值时回退)
querylimit30 / 1 / 50(默认 / 下限 / 上限)
queryoffset0 / 0 / 1000(默认 / 下限 / 上限)
querytype''(空值时回退)
querytypes''(空值时回退)

表格列出实际代码读取的字段;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;分享落地页与客户端使用)

权限:公开。

请求参数​

位置字段默认/读取方式
queryids''(空值时回退)

表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。

参数校验与业务错误​

HTTP服务端校验说明
400'ids 参数错误'

说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。

请求模板​

将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。

curl --request GET 'https://music.20110208.xyz/cm/ncm/song/detail?ids=<ids>'

返回结构​

以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。

HTTP 200

字段取值/生成逻辑
songscm_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。

请求参数​

位置字段默认/读取方式
queryalts未在 get 中指定
queryhost''(空值时回退)
queryid0(空值时回退)
queryimmerseNone(空值时回退)
querylevel'auto'(空值时回退)
querymaxBr0(空值时回退)
querymaxbr0(空值时回退)
queryrefresh未在 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

字段取值/生成逻辑
okTrue
hosthost
eventevent

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]))}
edgesVerifiedcm_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 为网易云红心数

权限:可选登录。

请求参数​

位置字段默认/读取方式
queryids''

表格列出实际代码读取的字段;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

字段取值/生成逻辑
countscm_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。接口参数和返回条件均来自该路由分支。