网易云绑定与同步
DELETE /cm/ncmbind
解绑网易云账号(已导入歌单保留为本地快照)
权限:Bearer。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request DELETE 'https://music.20110208.xyz/cm/ncmbind' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
note | '已解绑(已导入的歌单保留为本地快照)' |
实现定位:backend/cm_server.py:3320。接口参数和返回条件均来自该路由分支。
GET /cm/ncmbind
网易云绑定状态(bound/profile/stale/lastSync)
权限:Bearer。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncmbind' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | _payload_bind(require_user(handler)) |
实现定位:backend/cm_server.py:3283。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/comment-like/{id}
网易云绑定与同步 · /ncmbind/comment-like/{id}
权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | commentId | 0(空值时回退) |
| JSON body | like | True |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '点赞评论需先绑定网易云账号' |
| 400 | '缺少 commentId' |
| 502 | str(e) |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/comment-like/{id}' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"like": "<like>", "commentId": "<commentId>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
liked | like |
实现定位:backend/cm_server.py:5027。接口参数和返回条件均来自该路由分支。
DELETE /cm/ncmbind/comment/{id}
网易云绑定与同步 · /ncmbind/comment/{id}
权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | commentId | 0(空值时回退) |
| JSON body | content | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '发评/删评需先绑定网易云账号' |
| 400 | '缺少 commentId' |
| 400 | '评论内容不能为空' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request DELETE 'https://music.20110208.xyz/cm/ncmbind/comment/{id}' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"commentId": "<commentId>", "content": "<content>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
实现定位:backend/cm_server.py:5001。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/comment/{id}
网易云绑定与同步 · /ncmbind/comment/{id}
权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | commentId | 0(空值时回退) |
| JSON body | content | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '发评/删评需先绑定网易云账号' |
| 400 | '缺少 commentId' |
| 400 | '评论内容不能为空' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/comment/{id}' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"commentId": "<commentId>", "content": "<content>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
实现定位:backend/cm_server.py:5001。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/import
同步本机网易云登录至当前账号;服务端验证身份,不返回 cookie;详见第三方登录态同步专题
权限:Bearer。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| exc.status | str(exc) |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/import' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | result |
实现定位:backend/cm_server.py:3275。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/like/{id}
网易云绑定与同步 · /ncmbind/like/{id}
权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | like | True |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '未绑定网易云账号,请先在「我的」页扫码绑定' |
| 502 | str(e) |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/like/{id}' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"like": "<like>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
liked | like |
count | counts.get(ncm_id) |
实现定位:backend/cm_server.py:3462。接口参数和返回条件均来自该路由分支。
GET /cm/ncmbind/likelist
网易云绑定与同步 · /ncmbind/likelist
权限:CurrentMusic Bearer 登录态;房间/绑定等条件另见校验。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 502 | f'获取网易云红心列表失败: {e}' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncmbind/likelist' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ids | ids |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ids | [] |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ids | json.loads(cached) |
实现定位:backend/cm_server.py:3443。接口参数和返回条件均来自该路由分支。
GET /cm/ncmbind/live
网易云登录态诊断(上游 /login/status 权威判据)
权限:Bearer。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncmbind/live' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | True |
ok | False |
note | '网易云登录态已失效,请重新扫码绑定或尝试刷新' |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | False |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | True |
ok | True |
profile | {'uid': prof.get('userId') or b['ncm_uid'], 'nickname': prof.get('nickname') or b['ncm_nickname'], 'avatar': p |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | True |
ok | False |
note | f'上游查询失败:{e}' |
实现定位:backend/cm_server.py:3329。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/phone/code
手机绑定-1:发送验证码 {phone, ctcode?}(60s 冷却)
权限:Bearer。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| JSON body | ctcode | '86'(空值时回退) |
| JSON body | phone | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '手机号格式不正确' |
| 429 | '验证码已发送,请 60 秒后再试' |
| e.status_code | str(e) |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/phone/code' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"phone": "<phone>", "ctcode": "<ctcode>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
ttl | 300 |
实现定位:backend/cm_server.py:3404。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/phone/login
手机绑定-2:验证码登录并绑定 {phone, captcha, ctcode?}
权限:Bearer。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| JSON body | captcha | ''(空值时回退) |
| JSON body | ctcode | '86'(空值时回退) |
| JSON body | phone | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '手机号与验证码均不能为空' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/phone/login' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"phone": "<phone>", "captcha": "<captcha>", "ctcode": "<ctcode>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
profile | prof |
实现定位:backend/cm_server.py:3425。接口参数和返回条件均来自该路由分支。
GET /cm/ncmbind/qr/check
二维码绑定-3:轮询扫码状态(801 待扫 / 802 已扫 / 803 成功绑定 / 800 过期)
权限:Bearer。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | key | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '会话不存在或已过期,请重新生成二维码' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncmbind/qr/check?key=<key>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
code | code |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
code | 803 |
profile | prof |
实现定位:backend/cm_server.py:3382。接口参数和返回条件均来自该路由分支。
GET /cm/ncmbind/qr/img
二维码绑定-2:key→base64 二维码图片(?key=)
权限:Bearer。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | key | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '缺少 key' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncmbind/qr/img?key=<key>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
qrimg | img |
实现定位:backend/cm_server.py:3372。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/qr/key
二维码绑定-1:取 key
权限:Bearer。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/qr/key' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
key | key |
实现定位:backend/cm_server.py:3360。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/refresh
刷新网易云登录态(cookie 续期,免重扫)
权限:Bearer。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 401 | '请先绑定网易云账号后再使用该功能' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/refresh' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
note | '登录态已刷新' |
实现定位:backend/cm_server.py:3350。接口参数和返回条件均来自该路由分支。
GET /cm/ncmbind/session
第三方客户端用:一次返回 bound/valid/profile/note(不暴露 cookie,登录态由服务端代理)
权限:Bearer。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/ncmbind/session' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | True |
valid | ok |
stale | not ok |
profile | {'uid': prof.get('userId') or base['uid'], 'nickname': prof.get('nickname') or base['nickname'], 'avatar': pro |
lastSync | b['last_sync'] |
lastSyncCount | b['last_sync_count'] |
note | '登录态有效' if ok else '网易云登录态已失效,请重新扫码绑定或调用 /ncmbind/refresh' |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | False |
valid | False |
stale | False |
profile | None |
note | '尚未绑定网易云账号' |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
bound | True |
valid | None |
stale | bool(b['stale']) |
profile | base |
lastSync | b['last_sync'] |
lastSyncCount | b['last_sync_count'] |
note | f'上游查询失败,稍后再试:{e}' |
实现定位:backend/cm_server.py:3286。接口参数和返回条件均来自该路由分支。
POST /cm/ncmbind/sync
把网易云歌单同步为本站歌单快照
权限:Bearer。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/ncmbind/sync' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | sync_ncm_playlists(u['id']) |
实现定位:backend/cm_server.py:3439。接口参数和返回条件均来自该路由分支。