@kg-ai/kugou-skill 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -10
- package/SKILL.md +169 -66
- package/bin/darwin-arm64/kugou-cli +0 -0
- package/bin/darwin-x64/kugou-cli +0 -0
- package/bin/linux-arm64/kugou-cli +0 -0
- package/bin/linux-x64/kugou-cli +0 -0
- package/bin/win32-x64/kugou-cli.exe +0 -0
- package/package.json +1 -1
- package/references/auth.md +2 -2
- package/references/control.md +676 -0
- package/references/error-handling.md +22 -22
- package/references/install.md +3 -2
- package/references/music.md +228 -25
- package/references/output-format.md +50 -4
- package/references/update.md +2 -1
package/README.md
CHANGED
|
@@ -20,11 +20,11 @@ npm install -g @kg-ai/kugou-skill
|
|
|
20
20
|
# Step 1: 获取二维码图片
|
|
21
21
|
kugou-cli auth login
|
|
22
22
|
|
|
23
|
-
# Step 2:
|
|
23
|
+
# Step 2: 循环检查登录状态(单次查询不内部轮询,agent 外层循环直到 logged_in=true)
|
|
24
24
|
kugou-cli auth status
|
|
25
|
-
```
|
|
26
25
|
|
|
27
26
|
> 必须将 Step 1 输出中 `qrcode_img_url` 渲染给用户扫码(用 ``)。token 会自动持久化存储。
|
|
27
|
+
> `auth status` 是单次查询,调用方需在外层循环(2-3 秒间隔)直到 `logged_in=true`;不要等"内部已轮询"——根本不会自动轮询。
|
|
28
28
|
|
|
29
29
|
## 命令
|
|
30
30
|
|
|
@@ -34,7 +34,7 @@ kugou-cli auth status
|
|
|
34
34
|
# 获取二维码图片
|
|
35
35
|
kugou-cli auth login
|
|
36
36
|
|
|
37
|
-
#
|
|
37
|
+
# 检查登录状态(单次查询,不内部轮询;agent 需外层循环 2-3s 间隔)
|
|
38
38
|
kugou-cli auth status
|
|
39
39
|
|
|
40
40
|
# 登出
|
|
@@ -48,21 +48,19 @@ kugou-cli auth logout
|
|
|
48
48
|
kugou-cli music search "周杰伦"
|
|
49
49
|
kugou-cli music search "周杰伦" --page 1 --size 20
|
|
50
50
|
|
|
51
|
-
#
|
|
52
|
-
kugou-cli music recommend
|
|
53
|
-
kugou-cli music recommend
|
|
51
|
+
# 猜你喜欢
|
|
52
|
+
kugou-cli music recommend guess
|
|
53
|
+
kugou-cli music recommend guess --num 10
|
|
54
54
|
|
|
55
55
|
# 相似推荐(需要指定歌曲)
|
|
56
56
|
kugou-cli music recommend similar --song "晴天"
|
|
57
57
|
kugou-cli music recommend similar -s "晴天" -n 5
|
|
58
58
|
|
|
59
|
-
#
|
|
59
|
+
# 我的收藏(上游固定返回最近 10 首,不支持分页)
|
|
60
60
|
kugou-cli music favorites
|
|
61
|
-
kugou-cli music favorites --page 1 --size 20
|
|
62
61
|
|
|
63
|
-
#
|
|
62
|
+
# 最近播放(上游固定返回最近 10 条,不支持分页)
|
|
64
63
|
kugou-cli music recent
|
|
65
|
-
kugou-cli music recent --page 1 --size 20
|
|
66
64
|
|
|
67
65
|
# 听歌统计
|
|
68
66
|
kugou-cli music stats
|
|
@@ -76,8 +74,21 @@ kugou-cli music charts 85432 # 百万收藏榜
|
|
|
76
74
|
kugou-cli music charts 74534 # 新歌榜
|
|
77
75
|
|
|
78
76
|
# 创建歌单
|
|
77
|
+
# ⚠️ 默认走客户端路径:kugou-cli control playlist create(见下方"控制"节)
|
|
78
|
+
# 客户端不可用时才回退到云端:
|
|
79
79
|
kugou-cli music create-playlist "我的空歌单"
|
|
80
80
|
kugou-cli music create-playlist "我的批量歌单" --songs "32068120,233125060"
|
|
81
|
+
|
|
82
|
+
# 搜索歌单
|
|
83
|
+
kugou-cli music search-playlist "周杰伦"
|
|
84
|
+
kugou-cli music search-playlist "跑步" --filter 1
|
|
85
|
+
|
|
86
|
+
# 歌单推荐
|
|
87
|
+
kugou-cli music recommend-playlist
|
|
88
|
+
kugou-cli music recommend-playlist --module-id 6
|
|
89
|
+
|
|
90
|
+
# 歌单内歌曲列表
|
|
91
|
+
kugou-cli music playlist-songs "collection_3_938985631_304_0"
|
|
81
92
|
```
|
|
82
93
|
|
|
83
94
|
### 安装 SKILL.md
|
|
@@ -92,6 +103,54 @@ kugou-cli install --mavis
|
|
|
92
103
|
kugou-cli install --hermes --openclaw --codex
|
|
93
104
|
```
|
|
94
105
|
|
|
106
|
+
### 控制 PC/Mac 酷狗客户端
|
|
107
|
+
|
|
108
|
+
通过本机 HTTP 服务控制本地酷狗桌面客户端(播放、暂停、收藏、创建歌单等)。仅支持 macOS 和 Windows,Linux 不支持。
|
|
109
|
+
|
|
110
|
+
**前置条件**:需先完成 CLI 登录(`kugou-cli auth login`)且酷狗客户端在后台运行。
|
|
111
|
+
|
|
112
|
+
**子命令列表**:
|
|
113
|
+
|
|
114
|
+
| 子命令 | 说明 |
|
|
115
|
+
|--------|------|
|
|
116
|
+
| `start` | 触发 URL-scheme 握手,预热通道 |
|
|
117
|
+
| `status` | 获取客户端状态 |
|
|
118
|
+
| `current` | 获取当前播放曲目 |
|
|
119
|
+
| `play` | 播放指定歌曲 |
|
|
120
|
+
| `play-playlist` | 播放整个歌单(按 global_collection_id) |
|
|
121
|
+
| `player` | 控制播放(播放/暂停/切歌等) |
|
|
122
|
+
| `seek` | 跳转或快进/快退播放位置 |
|
|
123
|
+
| `volume` | 调节音量或静音 |
|
|
124
|
+
| `continue-play` | 拉取"另一设备续播"列表并开始播放 |
|
|
125
|
+
| `favorite song` | 收藏/取消收藏歌曲 |
|
|
126
|
+
| `favorite songlist` | 收藏/取消收藏歌单 |
|
|
127
|
+
| `playlist create` | 在客户端创建新歌单 |
|
|
128
|
+
| `open` | 在客户端内打开页面(搜索/歌手/专辑等) |
|
|
129
|
+
|
|
130
|
+
**示例**:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# 预热握手(首次使用前建议执行)
|
|
134
|
+
kugou-cli control start
|
|
135
|
+
|
|
136
|
+
# 播放歌曲
|
|
137
|
+
kugou-cli control play --mixsongid 32100650 --song-name "晴天" --singer-name "周杰伦"
|
|
138
|
+
|
|
139
|
+
# 播放整个歌单
|
|
140
|
+
kugou-cli control play-playlist --global-id "collection_3_938985631_304_0"
|
|
141
|
+
|
|
142
|
+
# 收藏歌曲
|
|
143
|
+
kugou-cli control favorite song --mixsongid 32100650
|
|
144
|
+
|
|
145
|
+
# 创建歌单
|
|
146
|
+
kugou-cli control playlist create --name "精选" --mixsongids "32100650,32068120"
|
|
147
|
+
|
|
148
|
+
# 在客户端内打开搜索页面
|
|
149
|
+
kugou-cli control open --target-type search --keyword "周杰伦"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
完整命令文档见 `references/control.md`。
|
|
153
|
+
|
|
95
154
|
### 全局
|
|
96
155
|
|
|
97
156
|
```bash
|
package/SKILL.md
CHANGED
|
@@ -2,20 +2,23 @@
|
|
|
2
2
|
name: kugou-skill
|
|
3
3
|
description: |
|
|
4
4
|
酷狗,酷狗音乐,酷狗skill,酷狗音乐skill,酷狗音乐助手
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
提供歌曲搜索、猜你喜欢、相似推荐、收藏管理、听歌统计、酷狗榜单、创建歌单等功能。
|
|
6
|
+
|
|
7
7
|
**触发场景**(满足任一即使用本技能):
|
|
8
8
|
- 用户要求推荐歌曲、听歌建议
|
|
9
9
|
- 用户要求搜索歌曲、查找歌手作品
|
|
10
10
|
- 用户要求查看音乐榜单(飙升榜、TOP500、抖音热歌等)
|
|
11
11
|
- 用户要求查看收藏、最近播放、听歌统计
|
|
12
12
|
- 用户要求创建歌单、自建歌单
|
|
13
|
-
- 用户提供
|
|
13
|
+
- 用户提供 base64 secret 字符串要求登录或导入身份
|
|
14
14
|
- Agent 在尝试扫码登录时遇到环境限制(无法发图片)→ 主动询问用户是否可提供 secret
|
|
15
|
-
- 用户提到"酷狗"、"kugou"、"
|
|
16
|
-
|
|
15
|
+
- 用户提到"酷狗"、"kugou"、"猜你喜欢"、"相似歌曲"
|
|
16
|
+
- 用户要求让 PC/Mac 客户端播放歌曲、暂停、切歌、收藏、创建歌单
|
|
17
|
+
- 用户提到酷狗 URL scheme("kugou://" 或 "mackugou://")
|
|
18
|
+
- 用户提到"本机控制"、"控制酷狗客户端"
|
|
19
|
+
|
|
17
20
|
**与其他音乐技能的区别**:酷狗音乐以推荐算法见长,榜单数据实时更新,适合获取热门歌曲和个性化推荐。
|
|
18
|
-
|
|
21
|
+
|
|
19
22
|
安装方式:npm install -g @kg-ai/kugou-skill
|
|
20
23
|
---
|
|
21
24
|
|
|
@@ -27,63 +30,148 @@ description: |
|
|
|
27
30
|
|
|
28
31
|
```
|
|
29
32
|
1. 检查安装 → npm install -g @kg-ai/kugou-skill
|
|
30
|
-
2.
|
|
31
|
-
3.
|
|
32
|
-
├─
|
|
33
|
-
├─
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
5
|
|
46
|
-
|
|
33
|
+
2. 检查登录态 → kugou-cli auth status
|
|
34
|
+
3. 登录决策(按以下优先级严格判断,不要跳步):
|
|
35
|
+
├─ 状态 a:已登录(logged_in: true)→ 跳到第 5 步
|
|
36
|
+
├─ 状态 b:未登录 + 用户**明确**说"我有 secret" → 调 `kugou-cli auth set-secret "<secret>"` 一次完成 → 跳到第 5 步
|
|
37
|
+
├─ 状态 c:未登录 + 当前环境**无法**渲染远程 URL 图片 **且** 无法读取本地二维码文件 → **强制**走 set-secret(同上)
|
|
38
|
+
└─ 状态 d:未登录 + 其他所有情况 → 走扫码流程(第 4 步)
|
|
39
|
+
|
|
40
|
+
注意:状态 b/c/d 互斥;不要在用户未明确给 secret 时擅自走 set-secret。
|
|
41
|
+
4. 引导登录——扫码(详见 references/auth.md):
|
|
42
|
+
- 执行 `auth login`,从输出读 `qrcode_img_url` 和 `qrcode_img_path`,按当前客户端能力选一种方式把二维码**直接展示给用户**
|
|
43
|
+
- **阶段 A(主动轮询)**:图片刚展示,**主动**重试几次 `auth status`(每次隔几秒),覆盖用户秒扫场景
|
|
44
|
+
- 任意一次返回 `logged_in: true` → 跳到第 5 步
|
|
45
|
+
- 几次都返回 `waiting` 且未出现 `scanned` → 进入阶段 B
|
|
46
|
+
- **阶段 B(等用户回复)**:停下,告诉用户"请用酷狗 APP 扫码登录,扫完后告诉我已扫码",**不再调 status**,等用户**主动回复"已扫码"**
|
|
47
|
+
- **阶段 C(验证一次)**:用户回复"已扫码"后,**调一次** `auth status`:
|
|
48
|
+
- `logged_in: true` → 完成,跳到第 5 步
|
|
49
|
+
- `scanned`(已扫但未确认)→ 等几秒再调一次,最多**额外**调几次,仍是 scanned 就告诉用户"手机端是否已点确认?"
|
|
50
|
+
- `failed` 或 `{"logged_in": false}` → 重新 `auth login` 拿新图,从阶段 A 重新开始
|
|
51
|
+
5. 按请求类型分流:
|
|
52
|
+
- **请求类型 A:控制已有歌 / 歌单 / 收藏**(用户已有 mixsongid 或 global_id)→ 直接执行 `control` 命令(详见 [references/control.md](references/control.md)),不需要先调 `music` 拿 ID
|
|
53
|
+
- 例:`control play`、`control player --action pause`、`control favorite song --mixsongid <id>`、`control play-playlist --global-id <id>`
|
|
54
|
+
- **请求类型 B:搜索后做某件事**(搜索歌曲/推荐/榜单 → 拿到 ID 后再做后续动作,如播放、收藏、建歌单)→ 先执行 `music` 命令拿数据,再按需转 `control`,详见 [references/music.md](references/music.md)
|
|
55
|
+
- 例:先 `music search` 拿 mixsongid,再 `control play` 播放
|
|
56
|
+
- 例:先 `music search-playlist` 拿 global_id,再 `control play-playlist` 播放
|
|
57
|
+
- 例:先 `music search` 拿 mixsongids,再 `control playlist create --mixsongids` 创建客户端歌单
|
|
58
|
+
- **请求类型 C:纯查询 / 统计 / 榜单**(不涉及本地客户端)→ 只走 `music` 命令
|
|
59
|
+
6. 解析 JSON 输出,按展示规范展示给用户(详见 [references/output-format.md](references/output-format.md))
|
|
47
60
|
```
|
|
48
61
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
62
|
+
> **关键提醒**:**不要**在没有 mixsongid / global_id 的情况下盲目调用 `control` 命令(如 `control play --mixsongid ""`)—— `control` 命令在 ID 缺失时会报错。先用 `music` 命令把 ID 查出来,再传给 `control`。
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 关键注意事项
|
|
67
|
+
|
|
68
|
+
### 登录流程
|
|
69
|
+
|
|
70
|
+
`auth login` 命令输出三个字段供 Agent 选择二维码展示方式(详见 [references/auth.md](references/auth.md)):
|
|
71
|
+
|
|
72
|
+
| 字段 | 用途 |
|
|
73
|
+
|------|------|
|
|
74
|
+
| `qrcode_img_path` | 本地二维码 PNG 文件路径 |
|
|
75
|
+
| `qrcode_img_url` | 远程二维码图片 URL |
|
|
76
|
+
| `qrcode` | 字符串标识,**Agent 不要使用**(仅供 CLI 内部) |
|
|
77
|
+
|
|
78
|
+
**根据当前客户端能力选择一种方式,把二维码图片直接展示在聊天窗口中**:
|
|
79
|
+
|
|
80
|
+
- 客户端支持读取或附加本地图片(如 Codex)→ 使用 `qrcode_img_path`,通过客户端的本地图片读取/附件能力展示
|
|
81
|
+
- 客户端支持 Markdown 外链图片(如 WorkBuddy)→ 在消息正文中输出 ``
|
|
82
|
+
- Agent 可以自行选择最适合当前环境的方式,不要同时展示两张二维码
|
|
83
|
+
- **不要**只把 URL 或本地路径作为普通文本发给用户,用户应直接看到二维码图片
|
|
84
|
+
- 首选方式展示失败时,立即切换到另一种方式:远程图片加载失败则尝试读取本地图片,本地图片无法读取则尝试远程 Markdown 图片
|
|
85
|
+
- 若两种方式都不可用 → 告诉用户"当前环境无法显示二维码,请提供 base64 secret 字符串",改走 `auth set-secret`
|
|
86
|
+
|
|
87
|
+
**`auth status` 的调用约束**:
|
|
88
|
+
|
|
89
|
+
- 每次调用只查一次扫码状态,**不会内部自动轮询**。Agent 需要在外层按"阶段 A → 阶段 B → 阶段 C"循环调用(详见上方工作流第 4 步)
|
|
90
|
+
- 阶段 B 之后**不要**自己继续调用 status,等用户回复
|
|
91
|
+
|
|
92
|
+
### 直接导入 secret 登录
|
|
93
|
+
|
|
94
|
+
当用户**已经持有**一个有效的 base64 secret 字符串(从别处获取的),直接调用 `kugou-cli auth set-secret "<secret>"` 即可完成登录,**跳过扫码流程**——效果与扫码登录完全一致。secret 字符串含 `+` `/` `=` 是正常的,shell 里务必用引号包起来。
|
|
95
|
+
|
|
96
|
+
**何时考虑用 set-secret**:
|
|
97
|
+
|
|
98
|
+
- 用户明确说"我有 secret"
|
|
99
|
+
- 当前环境既无法展示远程图片也无法读取本地图片
|
|
100
|
+
- 用户之前已经登录过想换设备
|
|
101
|
+
|
|
102
|
+
### 登出
|
|
103
|
+
|
|
104
|
+
`auth logout` 命令:先与服务端同步登出,**确认成功后才**清理登录状态。失败时登录状态保留、可重试;未登录时幂等直接返回成功。
|
|
105
|
+
|
|
106
|
+
### 登录态自动失效
|
|
107
|
+
|
|
108
|
+
当任意 `music` 命令遇到登录态过期时,CLI 会自动取消登录(退出码非 0 + stderr 提示登录已过期)。Agent 收到该错误后:
|
|
109
|
+
|
|
110
|
+
1. **不要**自己再调一次 `music` 命令(会再次失败)
|
|
111
|
+
2. **直接**引导用户重新登录:先问"你手上是否已有新 secret?",有则 `auth set-secret`,没有则 `auth login` 走扫码
|
|
112
|
+
3. 重新登录后,**先调 `auth status` 确认** `logged_in: true`,再重试之前失败的 `music` 命令
|
|
113
|
+
|
|
114
|
+
> Agent 不应依赖 stderr 文案字面量判断错误类型——以退出码和 references/error-handling.md 中的错误码说明为准。
|
|
115
|
+
|
|
116
|
+
### 音乐命令依赖登录
|
|
117
|
+
|
|
118
|
+
除了 `auth`、`install`、`version`、`--help` 以外,所有 `music` 子命令都需要先登录。如果 CLI 返回"未登录"错误,引导用户执行登录流程。
|
|
119
|
+
|
|
120
|
+
### 输出格式与成功判定
|
|
121
|
+
|
|
122
|
+
所有命令输出原始 JSON 到 stdout,错误输出到 stderr。**成功判定以退出码和 JSON 内的成功状态字段为准**(详见 [references/output-format.md](references/output-format.md))。
|
|
123
|
+
|
|
124
|
+
### 歌曲展示规范
|
|
125
|
+
|
|
126
|
+
向用户展示音乐命令返回的歌曲列表时(详见 [references/output-format.md](references/output-format.md)):
|
|
127
|
+
|
|
128
|
+
- **禁止**只返回歌曲名、歌手名
|
|
129
|
+
- **必须**以 Markdown 链接格式展示播放链接
|
|
130
|
+
- 正确格式:`[歌曲名 - 歌手名](https://www.kugou.com/...)`
|
|
131
|
+
- 禁止格式:`晴天 - 周杰伦`(无链接)、`歌曲名: 晴天, 歌手: 周杰伦`(无链接)
|
|
132
|
+
|
|
133
|
+
### 推荐理由规范
|
|
134
|
+
|
|
135
|
+
仅在 agent **主动推荐**场景下,歌曲列表之后**必须**追加一段 220-260 字的推荐理由(详见 [references/output-format.md#5-推荐理由主动推荐场景必写](references/output-format.md#5-推荐理由主动推荐场景必写)):
|
|
136
|
+
|
|
137
|
+
- **触发**:`recommend guess / similar / text`、`charts`、`recommend-playlist`
|
|
138
|
+
- **不触发**:`search` / `search-playlist` / `favorites` / `recent` / `stats` / `playlist-songs`——用户主动查询不写
|
|
139
|
+
- **三层内容**:整体歌曲风格 + 匹配逻辑 + 挑 2-3 首基于行业认知的解读
|
|
140
|
+
- **字数硬约束**:220-260(含标点),超出或不足需重写
|
|
141
|
+
|
|
142
|
+
### 创建歌单的调用原则
|
|
143
|
+
|
|
144
|
+
详见 [references/music.md#7-创建歌单](references/music.md#7-创建歌单):
|
|
145
|
+
|
|
146
|
+
1. **被动调用**:必须用户**明确**要求创建歌单时才调用,禁止在用户仅说"推荐/搜歌"时主动创建
|
|
147
|
+
2. **主动询问**:当通过搜索、推荐(猜你喜欢/相似/文本)等方式给出一批歌曲后,**必须**询问用户是否需要将当前这批歌曲创建为歌单,等用户确认后再调用
|
|
148
|
+
3. **硬性默认:优先客户端创建**:用户同意后**必须先尝试** `kugou-cli control playlist create`(在本地酷狗客户端内创建,详见 [references/control.md#10-playlist-create--创建歌单](references/control.md#10-playlist-create--创建歌单)),仅当客户端不可用(不支持的操作系统 / 未运行 / 无响应 / 调用失败)时才回退到云端 `music create-playlist`
|
|
149
|
+
4. **创建成功后主动询问是否播放**:无论走 `control playlist create` 还是 `music create-playlist`,**创建成功(返回成功状态)后必须主动询问用户"是否要播放这个歌单"**,等用户明确回复后再决定走哪条播放命令;用户拒绝则不做任何动作。播放路径选择:
|
|
150
|
+
- 客户端可用:优先 `kugou-cli control play-playlist --global-id "<id>"`(详见 [references/control.md#12-play-playlist--播放整个歌单](references/control.md#12-play-playlist--播放整个歌单))
|
|
151
|
+
- 客户端不可用 / `play-playlist` 拿不到可用 ID:按 [references/music.md#72-云端歌单的播放控制浏览器打开-h5-链接](references/music.md#72-云端歌单的播放控制浏览器打开-h5-链接) 走"先探后告知"——用浏览器工具打开 H5 `song_list_url` 尝试点击播放;工具不可用时明确告知用户手动复制链接打开
|
|
152
|
+
|
|
153
|
+
### 能力边界提示
|
|
154
|
+
|
|
155
|
+
当用户提出的需求在 `kugou-cli` **整体能力边界之外**时,Agent 必须**明确告知用户"暂不支持该能力"**,不得擅自用其他命令拼凑代替,也不得假装能完成。
|
|
156
|
+
|
|
157
|
+
**典型场景**:
|
|
158
|
+
|
|
159
|
+
- `kugou-cli` 没有对应子命令(用户要的功能不在 `auth` / `music` / `control` / `install` 任何子命令中)
|
|
160
|
+
- `control` 子命令在当前操作系统不支持(如 `control` 系列仅支持 Windows / macOS,Linux 不支持)
|
|
161
|
+
- 命令存在但参数 / 取值已下线(如 `control open --target-type url` 已被移除)
|
|
162
|
+
- CLI 整体没有相关云端 API(如批量下载、歌词编辑、播客等)
|
|
163
|
+
|
|
164
|
+
**正确回应**:
|
|
165
|
+
|
|
166
|
+
> 这个能力 kugou-cli 暂不支持。如果你需要该功能,可以去酷狗客户端里手动操作。
|
|
167
|
+
|
|
168
|
+
**反例(不要这样做)**:
|
|
169
|
+
|
|
170
|
+
- 不要用「推荐相似歌曲」伪装成「按场景生成歌单」之类的能力替代
|
|
171
|
+
- 不要反复尝试不同参数 / 多次重试来"碰运气"绕过不支持
|
|
172
|
+
- 不要把 CLI 报错("unknown flag" / "unsupported")原样翻译后甩给用户——先判断这是"能力不存在"还是"用法不对"再回应
|
|
173
|
+
|
|
174
|
+
**与「客户端不可用」的区别**:本节是「命令/能力本身不存在」;「客户端不可用」是「命令存在但本机客户端未运行 / 未登录」,后者有 fallback 路径(详见上方「创建歌单的调用原则」第 3 条 + [references/control.md](references/control.md))。两者不要混用。
|
|
87
175
|
|
|
88
176
|
---
|
|
89
177
|
|
|
@@ -93,6 +181,8 @@ description: |
|
|
|
93
181
|
- **二进制命令**: kugou-cli
|
|
94
182
|
- **安装方式**: `npm install -g @kg-ai/kugou-skill`
|
|
95
183
|
|
|
184
|
+
> 关于更新:CLI 安装后会自动保持最新。具体更新机制与关闭开关见 [references/update.md](references/update.md)。如有版本相关问题,向该文档查证。
|
|
185
|
+
|
|
96
186
|
---
|
|
97
187
|
|
|
98
188
|
## 详细文档索引
|
|
@@ -101,8 +191,9 @@ description: |
|
|
|
101
191
|
|------|------|
|
|
102
192
|
| [references/auth.md](references/auth.md) | 认证命令:扫码登录、直接设置 secret、查看状态、登出 |
|
|
103
193
|
| [references/music.md](references/music.md) | 音乐命令:搜索、推荐、收藏、统计、榜单、创建歌单 |
|
|
194
|
+
| [references/control.md](references/control.md) | 控制命令:控制 PC/Mac 客户端播放、暂停、切歌、收藏、创建歌单等 |
|
|
104
195
|
| [references/install.md](references/install.md) | 安装命令:SKILL.md 安装到各平台 |
|
|
105
|
-
| [references/update.md](references/update.md) |
|
|
196
|
+
| [references/update.md](references/update.md) | 更新机制、版本检查、关闭自动更新 |
|
|
106
197
|
| [references/output-format.md](references/output-format.md) | 输出格式与展示规范 |
|
|
107
198
|
| [references/error-handling.md](references/error-handling.md) | 错误处理与常见错误 |
|
|
108
199
|
|
|
@@ -111,9 +202,9 @@ description: |
|
|
|
111
202
|
## 完整使用流程
|
|
112
203
|
|
|
113
204
|
```bash
|
|
114
|
-
# 1.
|
|
205
|
+
# 1. 登录(详见 references/auth.md)
|
|
115
206
|
kugou-cli auth login # 获取二维码
|
|
116
|
-
# auth status
|
|
207
|
+
# auth status 不会内部轮询;Agent 按"阶段 A → 阶段 B → 阶段 C"自行循环
|
|
117
208
|
kugou-cli auth status
|
|
118
209
|
|
|
119
210
|
# 1'. 或者直接导入已持有的 secret(跳过扫码)
|
|
@@ -125,10 +216,10 @@ kugou-cli music search "周杰伦"
|
|
|
125
216
|
# 3. 获取猜你喜欢
|
|
126
217
|
kugou-cli music recommend guess
|
|
127
218
|
|
|
128
|
-
# 4.
|
|
219
|
+
# 4. 查看我的收藏(返回最近若干首,不支持分页)
|
|
129
220
|
kugou-cli music favorites
|
|
130
221
|
|
|
131
|
-
# 5.
|
|
222
|
+
# 5. 查看最近播放(返回最近若干条,不支持分页)
|
|
132
223
|
kugou-cli music recent
|
|
133
224
|
|
|
134
225
|
# 6. 查看听歌统计
|
|
@@ -138,6 +229,18 @@ kugou-cli music stats
|
|
|
138
229
|
kugou-cli music charts 52144
|
|
139
230
|
|
|
140
231
|
# 8. 创建歌单
|
|
232
|
+
# 优先走客户端路径(默认):见 references/control.md §10
|
|
233
|
+
kugou-cli control playlist create --name "我的批量歌单" --mixsongids "32068120,233125060"
|
|
234
|
+
# 客户端不可用时才回退到云端(详见 references/music.md §7.1):
|
|
141
235
|
kugou-cli music create-playlist "我的空歌单"
|
|
142
236
|
kugou-cli music create-playlist "我的批量歌单" --songs "32068120,233125060"
|
|
237
|
+
|
|
238
|
+
# 9. 搜索歌单(拿到 global_id 后可透传给 control play-playlist)
|
|
239
|
+
kugou-cli music search-playlist "周杰伦"
|
|
240
|
+
kugou-cli music playlist-songs "collection_3_938985631_304_0"
|
|
241
|
+
|
|
242
|
+
# 10. 控制本机酷狗客户端(仅 Windows / macOS,详见 references/control.md)
|
|
243
|
+
kugou-cli control play --mixsongid 32100650 --song-name "晴天" --singer-name "周杰伦"
|
|
244
|
+
kugou-cli control player --action pause
|
|
245
|
+
kugou-cli control favorite song --mixsongid 32100650
|
|
143
246
|
```
|
|
Binary file
|
package/bin/darwin-x64/kugou-cli
CHANGED
|
Binary file
|
|
Binary file
|
package/bin/linux-x64/kugou-cli
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/references/auth.md
CHANGED
|
@@ -84,7 +84,7 @@ kugou-cli auth status
|
|
|
84
84
|
| 返回 | 含义 | Agent 应做 |
|
|
85
85
|
|------|------|-----------|
|
|
86
86
|
| `{"logged_in": true, "nickname": "...", "login_time": "..."}` | 已登录(**已有 token 持久化**,通常是之前登录过) | 继续执行用户请求 |
|
|
87
|
-
| `{"logged_in": true, "status": "success", "nickname": "..."}` |
|
|
87
|
+
| `{"logged_in": true, "status": "success", "nickname": "..."}` | 扫码刚完成登录(**本轮 status 检查中完成 token 持久化**) | 继续执行用户请求 |
|
|
88
88
|
| `{"logged_in": false, "status": "waiting", "qrcode": "..."}` | 二维码待扫码 | **阶段 A**:2-3s 后重试 status,最多 5 次;5 次后**进入阶段 B**,停下来等用户主动反馈 |
|
|
89
89
|
| `{"logged_in": false, "status": "scanned", "nickname": "...", "qrcode": "..."}` | 已扫码待确认 | 等几秒再调一次 status(用户还没在手机上点确认) |
|
|
90
90
|
| `{"logged_in": false, "status": "failed", "message": "..."}` | 二维码失效(**CLI 会自动清理本地 qrcode**) | **阶段 C 验证时**才见此返回 → 重新 `auth login` 拿新图,回到 §2.2 步骤 1 |
|
|
@@ -100,7 +100,7 @@ kugou-cli auth status
|
|
|
100
100
|
|
|
101
101
|
### 2.3.1 边界提醒:status: failed 会清掉 qrcode
|
|
102
102
|
|
|
103
|
-
**关键事实**:`
|
|
103
|
+
**关键事实**:`status: failed` 时 CLI 会自动清理本地 qrcode 文件(**不是清理登录态**)。
|
|
104
104
|
|
|
105
105
|
**在阶段 A / 阶段 C 见到 `failed` 时的处理**:
|
|
106
106
|
|