@kg-ai/kugou-skill 0.1.4 → 0.1.6
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 +139 -139
- package/SKILL.md +137 -109
- 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 +195 -147
- package/references/output-format.md +1 -1
- package/bin/kugou-cli.exe +0 -0
package/README.md
CHANGED
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
# Kugou CLI
|
|
2
|
-
|
|
3
|
-
酷狗音乐 API CLI 工具,用于搜索、推荐、收藏、统计、榜单等功能。
|
|
4
|
-
|
|
5
|
-
## 安装
|
|
6
|
-
|
|
7
|
-
### npm 安装(推荐)
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install -g @kg-ai/kugou-skill
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
安装后使用 `kugou-cli` 命令。npm 安装时会自动安装 SKILL.md 到各平台的 skills 目录。
|
|
14
|
-
|
|
15
|
-
## 前置条件
|
|
16
|
-
|
|
17
|
-
使用前需要扫码登录(极简流程):
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# Step 1: 获取二维码图片
|
|
21
|
-
kugou-cli auth login
|
|
22
|
-
|
|
23
|
-
# Step 2: 循环检查登录状态(直到 logged_in=true)
|
|
24
|
-
kugou-cli auth status
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
> 必须将 Step 1 输出中 `
|
|
28
|
-
|
|
29
|
-
## 命令
|
|
30
|
-
|
|
31
|
-
### 认证
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# 获取二维码图片
|
|
35
|
-
kugou-cli auth login
|
|
36
|
-
|
|
37
|
-
# 检查登录状态(未完成登录时内部自动轮询)
|
|
38
|
-
kugou-cli auth status
|
|
39
|
-
|
|
40
|
-
# 登出
|
|
41
|
-
kugou-cli auth logout
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### 音乐
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# 搜索歌曲
|
|
48
|
-
kugou-cli music search "周杰伦"
|
|
49
|
-
kugou-cli music search "周杰伦" --page 1 --size 20
|
|
50
|
-
|
|
51
|
-
# 每日推荐
|
|
52
|
-
kugou-cli music recommend daily
|
|
53
|
-
kugou-cli music recommend daily --num 10
|
|
54
|
-
|
|
55
|
-
# 相似推荐(需要指定歌曲)
|
|
56
|
-
kugou-cli music recommend similar --song "晴天"
|
|
57
|
-
kugou-cli music recommend similar -s "晴天" -n 5
|
|
58
|
-
|
|
59
|
-
# 我的收藏
|
|
60
|
-
kugou-cli music favorites
|
|
61
|
-
kugou-cli music favorites --page 1 --size 20
|
|
62
|
-
|
|
63
|
-
# 最近播放
|
|
64
|
-
kugou-cli music recent
|
|
65
|
-
kugou-cli music recent --page 1 --size 20
|
|
66
|
-
|
|
67
|
-
# 听歌统计
|
|
68
|
-
kugou-cli music stats
|
|
69
|
-
|
|
70
|
-
# 酷狗榜单
|
|
71
|
-
kugou-cli music charts 6666 # 飙升榜
|
|
72
|
-
kugou-cli music charts 8888 # TOP500榜
|
|
73
|
-
kugou-cli music charts 52144 # 抖音热歌酷狗榜
|
|
74
|
-
kugou-cli music charts 90379 # 星耀星光榜
|
|
75
|
-
kugou-cli music charts 85432 # 百万收藏榜
|
|
76
|
-
kugou-cli music charts 74534 # 新歌榜
|
|
77
|
-
|
|
78
|
-
# 创建歌单
|
|
79
|
-
kugou-cli music create-playlist "我的空歌单"
|
|
80
|
-
kugou-cli music create-playlist "我的批量歌单" --songs "32068120,233125060"
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### 安装 SKILL.md
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
# 安装到所有平台
|
|
87
|
-
kugou-cli install --all
|
|
88
|
-
|
|
89
|
-
# 安装到指定平台
|
|
90
|
-
kugou-cli install --claude
|
|
91
|
-
kugou-cli install --mavis
|
|
92
|
-
kugou-cli install --hermes --openclaw --codex
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 全局
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
kugou-cli --version
|
|
99
|
-
kugou-cli --help
|
|
100
|
-
|
|
101
|
-
# 检查更新
|
|
102
|
-
kugou-cli update --check
|
|
103
|
-
|
|
104
|
-
# 更新(仅 npm 安装支持)
|
|
105
|
-
kugou-cli update --force
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## 输出格式
|
|
109
|
-
|
|
110
|
-
所有命令输出 JSON 格式,方便其他程序调用:
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"errcode": 0,
|
|
115
|
-
"data": {
|
|
116
|
-
"list": [
|
|
117
|
-
{
|
|
118
|
-
"song_name": "晴天",
|
|
119
|
-
"mix_song_id": "32100650",
|
|
120
|
-
"artist_name": "周杰伦",
|
|
121
|
-
"play_link": "https://www.kugou.com/mixsong/agent_gateway/xxx.html"
|
|
122
|
-
}
|
|
123
|
-
],
|
|
124
|
-
"total": 480,
|
|
125
|
-
"page": 1,
|
|
126
|
-
"size": 20
|
|
127
|
-
},
|
|
128
|
-
"status": 1
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## 错误处理
|
|
133
|
-
|
|
134
|
-
错误信息输出到 stderr,程序 exit code 为 1:
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
kugou-cli music search "xxx" 2>&1
|
|
138
|
-
echo $? # 非 0 表示出错
|
|
139
|
-
```
|
|
1
|
+
# Kugou CLI
|
|
2
|
+
|
|
3
|
+
酷狗音乐 API CLI 工具,用于搜索、推荐、收藏、统计、榜单等功能。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
### npm 安装(推荐)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @kg-ai/kugou-skill
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
安装后使用 `kugou-cli` 命令。npm 安装时会自动安装 SKILL.md 到各平台的 skills 目录。
|
|
14
|
+
|
|
15
|
+
## 前置条件
|
|
16
|
+
|
|
17
|
+
使用前需要扫码登录(极简流程):
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Step 1: 获取二维码图片
|
|
21
|
+
kugou-cli auth login
|
|
22
|
+
|
|
23
|
+
# Step 2: 循环检查登录状态(直到 logged_in=true)
|
|
24
|
+
kugou-cli auth status
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
> 必须将 Step 1 输出中 `qrcode_image_url` 渲染给用户扫码(用 ``)。token 会自动持久化存储。
|
|
28
|
+
|
|
29
|
+
## 命令
|
|
30
|
+
|
|
31
|
+
### 认证
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 获取二维码图片
|
|
35
|
+
kugou-cli auth login
|
|
36
|
+
|
|
37
|
+
# 检查登录状态(未完成登录时内部自动轮询)
|
|
38
|
+
kugou-cli auth status
|
|
39
|
+
|
|
40
|
+
# 登出
|
|
41
|
+
kugou-cli auth logout
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 音乐
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 搜索歌曲
|
|
48
|
+
kugou-cli music search "周杰伦"
|
|
49
|
+
kugou-cli music search "周杰伦" --page 1 --size 20
|
|
50
|
+
|
|
51
|
+
# 每日推荐
|
|
52
|
+
kugou-cli music recommend daily
|
|
53
|
+
kugou-cli music recommend daily --num 10
|
|
54
|
+
|
|
55
|
+
# 相似推荐(需要指定歌曲)
|
|
56
|
+
kugou-cli music recommend similar --song "晴天"
|
|
57
|
+
kugou-cli music recommend similar -s "晴天" -n 5
|
|
58
|
+
|
|
59
|
+
# 我的收藏
|
|
60
|
+
kugou-cli music favorites
|
|
61
|
+
kugou-cli music favorites --page 1 --size 20
|
|
62
|
+
|
|
63
|
+
# 最近播放
|
|
64
|
+
kugou-cli music recent
|
|
65
|
+
kugou-cli music recent --page 1 --size 20
|
|
66
|
+
|
|
67
|
+
# 听歌统计
|
|
68
|
+
kugou-cli music stats
|
|
69
|
+
|
|
70
|
+
# 酷狗榜单
|
|
71
|
+
kugou-cli music charts 6666 # 飙升榜
|
|
72
|
+
kugou-cli music charts 8888 # TOP500榜
|
|
73
|
+
kugou-cli music charts 52144 # 抖音热歌酷狗榜
|
|
74
|
+
kugou-cli music charts 90379 # 星耀星光榜
|
|
75
|
+
kugou-cli music charts 85432 # 百万收藏榜
|
|
76
|
+
kugou-cli music charts 74534 # 新歌榜
|
|
77
|
+
|
|
78
|
+
# 创建歌单
|
|
79
|
+
kugou-cli music create-playlist "我的空歌单"
|
|
80
|
+
kugou-cli music create-playlist "我的批量歌单" --songs "32068120,233125060"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 安装 SKILL.md
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# 安装到所有平台
|
|
87
|
+
kugou-cli install --all
|
|
88
|
+
|
|
89
|
+
# 安装到指定平台
|
|
90
|
+
kugou-cli install --claude
|
|
91
|
+
kugou-cli install --mavis
|
|
92
|
+
kugou-cli install --hermes --openclaw --codex
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 全局
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
kugou-cli --version
|
|
99
|
+
kugou-cli --help
|
|
100
|
+
|
|
101
|
+
# 检查更新
|
|
102
|
+
kugou-cli update --check
|
|
103
|
+
|
|
104
|
+
# 更新(仅 npm 安装支持)
|
|
105
|
+
kugou-cli update --force
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 输出格式
|
|
109
|
+
|
|
110
|
+
所有命令输出 JSON 格式,方便其他程序调用:
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"errcode": 0,
|
|
115
|
+
"data": {
|
|
116
|
+
"list": [
|
|
117
|
+
{
|
|
118
|
+
"song_name": "晴天",
|
|
119
|
+
"mix_song_id": "32100650",
|
|
120
|
+
"artist_name": "周杰伦",
|
|
121
|
+
"play_link": "https://www.kugou.com/mixsong/agent_gateway/xxx.html"
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"total": 480,
|
|
125
|
+
"page": 1,
|
|
126
|
+
"size": 20
|
|
127
|
+
},
|
|
128
|
+
"status": 1
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 错误处理
|
|
133
|
+
|
|
134
|
+
错误信息输出到 stderr,程序 exit code 为 1:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
kugou-cli music search "xxx" 2>&1
|
|
138
|
+
echo $? # 非 0 表示出错
|
|
139
|
+
```
|
package/SKILL.md
CHANGED
|
@@ -1,109 +1,137 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: kugou-skill
|
|
3
|
-
description: |
|
|
4
|
-
酷狗,酷狗音乐,酷狗skill,酷狗音乐skill,酷狗音乐助手
|
|
5
|
-
提供歌曲搜索、每日推荐、相似推荐、收藏管理、听歌统计、酷狗榜单、创建歌单等功能。
|
|
6
|
-
|
|
7
|
-
**触发场景**(满足任一即使用本技能):
|
|
8
|
-
- 用户要求推荐歌曲、听歌建议
|
|
9
|
-
- 用户要求搜索歌曲、查找歌手作品
|
|
10
|
-
- 用户要求查看音乐榜单(飙升榜、TOP500、抖音热歌等)
|
|
11
|
-
- 用户要求查看收藏、最近播放、听歌统计
|
|
12
|
-
- 用户要求创建歌单、自建歌单
|
|
13
|
-
- 用户提供 secret(base64 字符串)要求登录或导入身份
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
1.
|
|
52
|
-
2.
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
1
|
+
---
|
|
2
|
+
name: kugou-skill
|
|
3
|
+
description: |
|
|
4
|
+
酷狗,酷狗音乐,酷狗skill,酷狗音乐skill,酷狗音乐助手
|
|
5
|
+
提供歌曲搜索、每日推荐、相似推荐、收藏管理、听歌统计、酷狗榜单、创建歌单等功能。
|
|
6
|
+
|
|
7
|
+
**触发场景**(满足任一即使用本技能):
|
|
8
|
+
- 用户要求推荐歌曲、听歌建议
|
|
9
|
+
- 用户要求搜索歌曲、查找歌手作品
|
|
10
|
+
- 用户要求查看音乐榜单(飙升榜、TOP500、抖音热歌等)
|
|
11
|
+
- 用户要求查看收藏、最近播放、听歌统计
|
|
12
|
+
- 用户要求创建歌单、自建歌单
|
|
13
|
+
- 用户提供 secret(base64 字符串)要求登录或导入身份
|
|
14
|
+
- Agent 在尝试扫码登录时遇到环境限制(无法发图片)→ 主动询问用户是否可提供 secret
|
|
15
|
+
- 用户提到"酷狗"、"kugou"、"每日推荐"、"相似歌曲"
|
|
16
|
+
|
|
17
|
+
**与其他音乐技能的区别**:酷狗音乐以推荐算法见长,榜单数据实时更新,适合获取热门歌曲和个性化推荐。
|
|
18
|
+
|
|
19
|
+
安装方式:npm install -g @kg-ai/kugou-skill
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# kugou-skill
|
|
23
|
+
|
|
24
|
+
## AI 使用工作流(优先阅读)
|
|
25
|
+
|
|
26
|
+
使用本工具时的标准流程:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
1. 检查安装 → npm install -g @kg-ai/kugou-skill
|
|
30
|
+
2. 检查登录 → kugou-cli auth status
|
|
31
|
+
3. 登录决策(关键决策点,不要跳过):
|
|
32
|
+
├─ 已登录(logged_in: true)→ 直接进入第 4 步
|
|
33
|
+
├─ 未登录 → 先询问用户:"你手上是否已有可用的 base64 secret?"
|
|
34
|
+
│ - 用户明确说"有" → 调 kugou-cli auth set-secret "<secret>",跳过扫码
|
|
35
|
+
│ - 用户说"没有"或不确定 → 走标准扫码流程
|
|
36
|
+
│ - 当前环境无法渲染远程 URL 图片(纯文本 agent / 客户端无法访问外网 / 不支持 Markdown 渲染)→ 强制走 set-secret
|
|
37
|
+
└─ 默认行为:除非用户明确说"我有 secret",否则优先走扫码
|
|
38
|
+
4. 引导登录(详见 references/auth.md):
|
|
39
|
+
- 扫码:auth login 拿 `qrcode_image_url` → 用 Markdown 图片语法直接 inline 给用户(不要只给 URL)
|
|
40
|
+
→ 阶段 A:主动循环 auth status 最多 5 次(2-3s 间隔),覆盖秒扫
|
|
41
|
+
→ 阶段 B:5 次仍 waiting → 停下,主动提示用户扫码,等用户**主动回复"已扫码"**
|
|
42
|
+
→ 阶段 C:用户回复后调一次 status 验证;logged_in: true 即完成
|
|
43
|
+
- 导入 secret:auth set-secret "<secret>" 一次完成
|
|
44
|
+
5. 执行用户请求的音乐命令(详见 references/music.md)
|
|
45
|
+
6. 解析 JSON 输出,按展示规范展示给用户(详见 references/output-format.md)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 关键注意事项
|
|
49
|
+
|
|
50
|
+
- **登录流程极简**(详见 [references/auth.md](references/auth.md)):
|
|
51
|
+
1. `auth login` - 获取二维码,输出包含 `qrcode`(字符串标识,给上游用)和 `qrcode_image_url`(**酷狗上游的图片 URL**,Agent 用它渲染)
|
|
52
|
+
2. **建议把二维码图片直接渲染到聊天窗口**(用户在窗口里能看到图片本身),**避免**只输出 URL 让用户手动打开:
|
|
53
|
+
- 首选:在消息正文中输出 `` 这种 Markdown 图片语法,让客户端拉取并渲染该 URL
|
|
54
|
+
- 备选:若平台支持把 URL 转为原生图片附件(image attach 工具等),可作为附件直接展示
|
|
55
|
+
- **避免**输出"二维码 URL 是 xxx,请打开扫码"这种纯文字提示 —— 用户最好能直接在聊天窗口看到图片
|
|
56
|
+
- **若当前 agent 工具集确认没有 URL 图片渲染能力**(纯文本通道、不支持 Markdown、客户端无法访问外网 URL)→ **跳过扫码**,直接告诉用户"当前环境无法显示二维码,请提供 base64 secret 字符串"并改走 `auth set-secret`
|
|
57
|
+
3. **图片发送后两阶段行为(关键)**:
|
|
58
|
+
- **阶段 A(主动轮询)**:图片刚展示,**先主动**循环调 `auth status` 最多 5 次(每次间隔 2-3 秒),覆盖用户秒扫的情况
|
|
59
|
+
- **阶段 B(等待用户反馈)**:5 次仍 `waiting` → **停下来**,主动告诉用户:"请用酷狗 APP 扫码登录,扫完后告诉我已扫码",**不再调 status**,等用户**主动回复"已扫码"**才进入阶段 C
|
|
60
|
+
- **阶段 C(验证登录)**:用户回复"已扫码" → 调一次 `auth status` 验证;返回 `logged_in: true` 继续执行,`scanned` 等几秒再调,`failed` 重新 `auth login` 拿新图
|
|
61
|
+
- 若用户回复"没看到图片" / "图片打不开" → 立即放弃扫码,切换到 `set-secret` 路径
|
|
62
|
+
4. `auth status` - **单次查询,不内部轮询**:每次调用只查一次扫码状态。完整流程见上方"两阶段行为"。**不要**等"内部已轮询"——根本不会自动轮询。
|
|
63
|
+
- **直接导入 secret 登录**:当用户**已经持有**一个有效的 base64 secret 字符串(从别处获取的),直接调用 `kugou-cli auth set-secret "<secret>"` 即可完成登录,**跳过扫码流程**。这与扫码登录保存到同一份 `auth.json`,效果完全一致。secret 字符串含 `+` `/` `=` 是正常的,shell 里务必用引号包起来。**何时考虑用 set-secret**:用户明确说"我有 secret"、当前环境无法渲染 `qrcode_image_url`、用户之前已经登录过想换设备。
|
|
64
|
+
- **登出 (auth logout)**:会**先**与服务端同步登出,**确认成功后才**清理本地登录态。失败时本地态保留、可重试;未登录时幂等直接返回成功。失败时 Agent **自动重试 1 次**(网络抖动常见),仍失败再询问用户是否重试,**不要**擅自清理本地文件。
|
|
65
|
+
- **登录态自动失效**:当任意 `music` 命令遇到登录态过期时,CLI 会**自动清理**本地登录态,并在 stderr 输出 `账号登录过期,请重新登录`,exit code 非 0。Agent 收到该错误后:
|
|
66
|
+
1. **不要**自己再调一次 `music` 命令(会再次失败)
|
|
67
|
+
2. **不要**手动清理本地文件
|
|
68
|
+
3. **直接**引导用户重新登录:先问"你手上是否已有新 secret?",有则 `auth set-secret`,没有则 `auth login` 走扫码
|
|
69
|
+
4. 重新登录后,**先调 `auth status` 确认** `logged_in: true`,再重试之前失败的 `music` 命令
|
|
70
|
+
- **状态字段差异**:`auth status` 在"无登录态"和"登录态过期被自动清理"两种场景下都返回 `{"logged_in": false}`(**不带 status 字段**);"等待扫码"才返回 `{"logged_in": false, "status": "waiting"}`。Agent 区分场景应看 `music` 命令的 stderr 输出,不要只看 status 字段。完整状态表见 [references/auth.md#状态表](references/auth.md#状态表)。
|
|
71
|
+
- **音乐命令依赖登录**:除了 `auth`、`install`、`version`、`--help` 以外,所有 `music` 子命令都需要先登录。如果收到 `"not logged in"` 错误,引导用户执行登录流程。
|
|
72
|
+
- **自动更新机制**:每次启动任意命令时会自动检测 npm 远端版本,若有新版会**自动执行** `npm install -g @kg-ai/kugou-skill@latest`,无需手动 `kugou-cli update`:
|
|
73
|
+
- 关闭自动检查:加 `--no-update-check` 标志,或设置环境变量 `KUGOU_CLI_NO_UPDATE_CHECK=1`
|
|
74
|
+
- 手动检查/触发:`kugou-cli update` 跳过本地缓存直接查远端并自动安装;`kugou-cli update --check` 仅检查不安装
|
|
75
|
+
- 非 npm 安装(手动编译/容器)会打印提示和升级命令但不会自动执行
|
|
76
|
+
- **输出均为 JSON**:所有命令输出原始 JSON 到 stdout,错误输出到 stderr。解析 `errcode` 字段判断成功与否(`0` 为成功)。
|
|
77
|
+
- **歌曲展示规范**(详见 [references/output-format.md](references/output-format.md)):**禁止**只返回歌曲名、歌手名,**必须**以 Markdown 链接格式展示播放链接。
|
|
78
|
+
- **创建歌单的调用原则**(详见 [references/music.md#8-创建歌单](references/music.md#8-创建歌单)):
|
|
79
|
+
1. **被动调用**:必须用户**明确**要求创建歌单时才调用 `music create-playlist`,禁止在用户仅说"推荐/搜歌"时主动创建
|
|
80
|
+
2. **主动询问**:当通过搜索、推荐(猜你喜欢/相似/文本)等方式给出一批歌曲后,**必须**询问用户是否需要将当前这批歌曲创建为歌单,等用户确认后再调用 `music create-playlist --songs "<mix_song_id 列表>"`
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 基础信息
|
|
85
|
+
|
|
86
|
+
- **npm 包**: @kg-ai/kugou-skill
|
|
87
|
+
- **二进制命令**: kugou-cli
|
|
88
|
+
- **安装方式**: `npm install -g @kg-ai/kugou-skill`
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 详细文档索引
|
|
93
|
+
|
|
94
|
+
| 文档 | 说明 |
|
|
95
|
+
|------|------|
|
|
96
|
+
| [references/auth.md](references/auth.md) | 认证命令:扫码登录、直接设置 secret、查看状态、登出 |
|
|
97
|
+
| [references/music.md](references/music.md) | 音乐命令:搜索、推荐、收藏、统计、榜单、创建歌单 |
|
|
98
|
+
| [references/install.md](references/install.md) | 安装命令:SKILL.md 安装到各平台 |
|
|
99
|
+
| [references/update.md](references/update.md) | 更新命令:检查/执行自动更新 |
|
|
100
|
+
| [references/output-format.md](references/output-format.md) | 输出格式与展示规范 |
|
|
101
|
+
| [references/error-handling.md](references/error-handling.md) | 错误处理与常见错误 |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 完整使用流程
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# 1. 登录(极简流程,详见 references/auth.md)
|
|
109
|
+
kugou-cli auth login # 获取二维码
|
|
110
|
+
# auth status 是单次查询,agent 需要外层循环调用,每次间隔 2-3 秒
|
|
111
|
+
kugou-cli auth status
|
|
112
|
+
|
|
113
|
+
# 1'. 或者直接导入已持有的 secret(跳过扫码)
|
|
114
|
+
kugou-cli auth set-secret "<base64-secret>"
|
|
115
|
+
|
|
116
|
+
# 2. 搜索歌曲
|
|
117
|
+
kugou-cli music search "周杰伦"
|
|
118
|
+
|
|
119
|
+
# 3. 获取猜你喜欢
|
|
120
|
+
kugou-cli music recommend guess
|
|
121
|
+
|
|
122
|
+
# 4. 查看我的收藏
|
|
123
|
+
kugou-cli music favorites
|
|
124
|
+
|
|
125
|
+
# 5. 查看最近播放
|
|
126
|
+
kugou-cli music recent
|
|
127
|
+
|
|
128
|
+
# 6. 查看听歌统计
|
|
129
|
+
kugou-cli music stats
|
|
130
|
+
|
|
131
|
+
# 7. 查看抖音热歌榜
|
|
132
|
+
kugou-cli music charts 52144
|
|
133
|
+
|
|
134
|
+
# 8. 创建歌单
|
|
135
|
+
kugou-cli music create-playlist "我的空歌单"
|
|
136
|
+
kugou-cli music create-playlist "我的批量歌单" --songs "32068120,233125060"
|
|
137
|
+
```
|
|
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
|
@@ -1,147 +1,195 @@
|
|
|
1
|
-
# 认证命令 (auth)
|
|
2
|
-
|
|
3
|
-
> 🔐 = 需要先登录
|
|
4
|
-
|
|
5
|
-
## 命令列表
|
|
6
|
-
|
|
7
|
-
| 命令 | 说明 | 需要登录 |
|
|
8
|
-
|------|------|---------|
|
|
9
|
-
| `kugou-cli auth login` |
|
|
10
|
-
| `kugou-cli auth status` |
|
|
11
|
-
| `kugou-cli auth set-secret <secret>` | 直接导入已持有的 base64 secret 登录(跳过扫码) | 否 |
|
|
12
|
-
| `kugou-cli auth logout` | 登出 | 否 |
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## 1. 扫码登录
|
|
17
|
-
|
|
18
|
-
登录流程极简:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
# Step 1:
|
|
22
|
-
kugou-cli auth login
|
|
23
|
-
|
|
24
|
-
# Step 2:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
1
|
+
# 认证命令 (auth)
|
|
2
|
+
|
|
3
|
+
> 🔐 = 需要先登录
|
|
4
|
+
|
|
5
|
+
## 命令列表
|
|
6
|
+
|
|
7
|
+
| 命令 | 说明 | 需要登录 |
|
|
8
|
+
|------|------|---------|
|
|
9
|
+
| `kugou-cli auth login` | 获取二维码(`qrcode` 字符串 + `qrcode_image_url` 远程图片 URL) | 否 |
|
|
10
|
+
| `kugou-cli auth status` | 检查登录状态(**单次查询,不内部轮询**,agent 需外层循环 2-3s 间隔) | 否 |
|
|
11
|
+
| `kugou-cli auth set-secret <secret>` | 直接导入已持有的 base64 secret 登录(跳过扫码) | 否 |
|
|
12
|
+
| `kugou-cli auth logout` | 登出 | 否 |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. 扫码登录
|
|
17
|
+
|
|
18
|
+
登录流程极简:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Step 1: 获取二维码(拿到 qrcode_image_url 用于渲染图片)
|
|
22
|
+
kugou-cli auth login
|
|
23
|
+
|
|
24
|
+
# Step 2: 循环调用 status(**单次查询不内部轮询**,agent 自己外层循环)
|
|
25
|
+
# 每次间隔 2-3 秒,看到 logged_in=true / status=success 即完成
|
|
26
|
+
kugou-cli auth status
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**auth login 输出示例**:
|
|
30
|
+
```json
|
|
31
|
+
{"qrcode": "xxx", "qrcode_image_url": "https://static.kugou.com/.../qrcode.png"}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
字段说明:
|
|
35
|
+
- `qrcode`:二维码字符串标识,**Agent 不要使用** —— 仅供 CLI 内部持久化以便后续 status 调上游 check 接口
|
|
36
|
+
- `qrcode_image_url`:酷狗上游返回的图片 URL,**Agent 用它渲染二维码图片**
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 2. AI 引导流程
|
|
41
|
+
|
|
42
|
+
### 2.1 决策点:先问 secret,再选路径
|
|
43
|
+
|
|
44
|
+
在调用任何 auth 命令之前,**先询问用户**:
|
|
45
|
+
|
|
46
|
+
> "你手上是否已有可用的 base64 secret 字符串?(从其他设备/工具导出的)"
|
|
47
|
+
|
|
48
|
+
- **用户明确说"有"** → 直接走 §3 `set-secret`,跳过 §1 扫码
|
|
49
|
+
- **用户说"没有"或不确定** → 走 §2.2 扫码流程
|
|
50
|
+
- **当前环境无法发送图片**(纯文本 agent、SSH 远端、容器)→ 强制走 §3 `set-secret`,不要走扫码
|
|
51
|
+
|
|
52
|
+
> **默认行为**:除非用户明确说"我有 secret",否则优先走扫码。
|
|
53
|
+
|
|
54
|
+
### 2.2 扫码流程
|
|
55
|
+
|
|
56
|
+
1. 调用 `auth login` 拿到 `qrcode_image_url`
|
|
57
|
+
2. **建议**用以下任一能力把 `qrcode_image_url` 直接展示给用户:
|
|
58
|
+
- 首选:Markdown 语法——在消息中输出 ``
|
|
59
|
+
- 备选:原生图片附件(若有 image attach 工具)——把 URL 作为附件直接展示
|
|
60
|
+
- **避免**只输出"请打开 xxx URL"这种纯文字提示
|
|
61
|
+
3. **阶段 A — 主动轮询(覆盖秒扫)**:图片展示后,**主动**外层循环调用 `auth status`,每次间隔 2-3 秒,**最多 5 次**:
|
|
62
|
+
- 看到 `logged_in: true` → 完成,继续执行用户请求
|
|
63
|
+
- 看到 `status: success` → 完成,继续执行用户请求
|
|
64
|
+
- 看到 `status: scanned` → 等几秒再调一次 status
|
|
65
|
+
- 5 次都是 `waiting` → 进入阶段 B
|
|
66
|
+
4. **阶段 B — 等待用户反馈(关键)**:5 次主动轮询后仍未登录,**停下来**,不再调任何 auth 命令。主动告诉用户:
|
|
67
|
+
> "请用酷狗 APP 扫码登录,扫完后告诉我已扫码"
|
|
68
|
+
然后**等用户主动回复**。**不要**自己继续轮询。
|
|
69
|
+
5. **阶段 C — 验证登录**:用户回复"已扫码"后,调一次 `auth status` 验证:
|
|
70
|
+
- `logged_in: true` → 完成,继续执行用户请求
|
|
71
|
+
- `status: scanned` → 用户在手机上还没点确认,等几秒再调一次
|
|
72
|
+
- `status: failed` → qrcode 失效(CLI 已清理),重新 `auth login` 拿新图,回到步骤 1
|
|
73
|
+
- `logged_in: false`(无 status 字段)→ qrcode 已被清理,提示用户"二维码可能已过期,正在重新获取"并回到步骤 1
|
|
74
|
+
6. **若用户在阶段 B 阶段回复"没看到图片" / "图片打不开"** → 立即放弃扫码,切换到 §3 `set-secret` 路径
|
|
75
|
+
7. **若用户在阶段 B 阶段回复"已扫码"**但阶段 C 验证发现没登录成功(`scanned` / `failed`),按阶段 C 各项处理,不要替用户做"再扫一次"之类的猜测
|
|
76
|
+
|
|
77
|
+
### 2.3 状态表
|
|
78
|
+
|
|
79
|
+
| 返回 | 含义 | Agent 应做 |
|
|
80
|
+
|------|------|-----------|
|
|
81
|
+
| `{"logged_in": true, "nickname": "...", "login_time": "..."}` | 已登录(**已有 token 持久化**,通常是之前登录过) | 继续执行用户请求 |
|
|
82
|
+
| `{"logged_in": true, "status": "success", "nickname": "..."}` | 扫码刚完成登录(**刚 SaveAuth 落盘**,本轮 status 检查中完成) | 继续执行用户请求 |
|
|
83
|
+
| `{"logged_in": false, "status": "waiting", "qrcode": "..."}` | 二维码待扫码 | **阶段 A**:2-3s 后重试 status,最多 5 次;5 次后**进入阶段 B**,停下来等用户主动反馈 |
|
|
84
|
+
| `{"logged_in": false, "status": "scanned", "nickname": "...", "qrcode": "..."}` | 已扫码待确认 | 等几秒再调一次 status(用户还没在手机上点确认) |
|
|
85
|
+
| `{"logged_in": false, "status": "failed", "message": "..."}` | 二维码失效(**CLI 会自动清理本地 qrcode**) | **阶段 C 验证时**才见此返回 → 重新 `auth login` 拿新图,回到 §2.2 步骤 1 |
|
|
86
|
+
| `{"logged_in": false}` | 无登录态(未登录过 / 登录过期被清理 / qrcode 刚被 failed 清理掉) | 走完整登录流程(§2.1 决策点) |
|
|
87
|
+
|
|
88
|
+
> **判定"已登录"**:`logged_in: true` 即算成功,**不管有没有 `status: success` 字段**——两种 JSON shape 都合法。
|
|
89
|
+
>
|
|
90
|
+
> 区分"无登录态"和"等待扫码"的关键:前者**没有** `status` 字段,后者有。
|
|
91
|
+
>
|
|
92
|
+
> **轮询逻辑(两阶段)**:
|
|
93
|
+
> - 阶段 A:图片刚展示,主动循环 status 最多 5 次(2-3s 间隔)→ 覆盖秒扫场景
|
|
94
|
+
> - 阶段 B:5 次仍 `waiting` → 主动告诉用户"请扫码登录,扫完后告诉我已扫码",**不再调 status**,等用户**主动回复**
|
|
95
|
+
|
|
96
|
+
### 2.3.1 边界提醒:status: failed 会清掉 qrcode
|
|
97
|
+
|
|
98
|
+
**关键事实**:`cmd/auth/status.go` 在 `status != 1/3/4` 时会调 `authstore.Logout()`,**自动清理本地 qrcode 文件**(不是清理登录态)。
|
|
99
|
+
|
|
100
|
+
**在阶段 A / 阶段 C 见到 `failed` 时的处理**:
|
|
101
|
+
|
|
102
|
+
| 见到位置 | 原因可能性 | Agent 应做 |
|
|
103
|
+
|---------|-----------|-----------|
|
|
104
|
+
| 阶段 A 主动轮询中 | 用户没扫 / qrcode 真过期 / 上游短暂异常 | **不再继续轮询**,主动告诉用户"二维码已失效或上游异常,正在重新获取",调 `auth login` 拿新图,回到 §2.2 步骤 1 |
|
|
105
|
+
| 阶段 C 用户说"已扫码"后验证 | 登录过程中上游返回非预期 / 已过期 | 同上,重新 `auth login` 拿新图 |
|
|
106
|
+
| 阶段 A 之后阶段 B 之前 | (不应发生) | 视为阶段 A 见到 failed 处理 |
|
|
107
|
+
|
|
108
|
+
> 不要因为"看到 failed → 看到 logged_in: false"就误判"用户没登录",按"qrcode 失效需重拿"处理——failed 是 qrcode 状态,不是登录态。
|
|
109
|
+
|
|
110
|
+
### 备选路径:用户已持有 secret
|
|
111
|
+
|
|
112
|
+
当用户**已经持有**一个有效的 base64 secret 字符串时(例如从其他设备、其他工具导出的),可以直接用 `auth set-secret` 跳过整个扫码流程,**不需**调用 `auth login` / `auth status`:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
kugou-cli auth set-secret "<base64-secret>"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
调用成功后 secret 会被持久化(路径见 §3),所有 music 命令立即可用,效果与扫码登录一致。
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## 3. 直接设置 secret
|
|
124
|
+
|
|
125
|
+
**适用场景**:
|
|
126
|
+
- 用户在其他设备/工具上已登录酷狗,导出或复制了一份 base64 secret
|
|
127
|
+
- 测试、调试、自动化场景下需要直接注入 secret
|
|
128
|
+
- 任何不便于扫码的终端环境(如 SSH 远端、容器、CI)
|
|
129
|
+
- 当前 agent 工具集无法渲染 `qrcode_image_url` 远程图片(不联网 / 不支持 Markdown 渲染,见 §2.4)
|
|
130
|
+
|
|
131
|
+
**命令**:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
kugou-cli auth set-secret "{secret}"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**shell 引号注意事项**:
|
|
138
|
+
- secret 字符串含 `+`、`/`、`=` 等 base64 字符是**正常的**,**不会**被 shell 误解析
|
|
139
|
+
- 但 `+` 在 bash 中是通配符、`=` 在 cmd.exe 中会触发变量赋值,**务必用引号包起来**
|
|
140
|
+
- 推荐使用双引号 `"..."`(除非 secret 中含 `$`,那就用单引号 `'...'`)
|
|
141
|
+
|
|
142
|
+
**输出示例**:
|
|
143
|
+
```json
|
|
144
|
+
{"status": "ok", "message": "secret saved"}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**失败示例**(secret 为空):
|
|
148
|
+
```
|
|
149
|
+
secret cannot be empty
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**与扫码登录的等价性**:
|
|
153
|
+
- secret 落到本地登录态文件,**跨平台位置**:
|
|
154
|
+
- Linux/macOS:`~/.config/kugou-cli/auth.json`
|
|
155
|
+
- Windows:`%AppData%\kugou-cli\auth.json`(通常为 `C:\Users\<user>\AppData\Roaming\kugou-cli\auth.json`)
|
|
156
|
+
- 若用户询问"登录态存在哪",按平台给对应路径,**不要**直接说 `~/.config/...` 在 Windows 下不准确
|
|
157
|
+
- 后续 `auth status` 输出 `{"logged_in": true}`
|
|
158
|
+
- 所有 `music` 子命令立即可用,无需任何额外步骤
|
|
159
|
+
- nickname 字段为空(因为导入途径不带昵称),不影响功能
|
|
160
|
+
|
|
161
|
+
**上游校验时机**:
|
|
162
|
+
- CLI 不做本地格式校验(不做 base64 解码、不解密),只做"非空"检查
|
|
163
|
+
- secret 实际有效性在**第一次**调用 `music <sub>` 时由上游校验
|
|
164
|
+
|
|
165
|
+
**登录态过期处理**:
|
|
166
|
+
- 当任意 `music` 命令遇到登录态过期时,CLI 会**自动清理**本地登录态,并在 stderr 输出 `账号登录过期,请重新登录`,以非 0 exit code 退出
|
|
167
|
+
- Agent 收到该错误后应**直接引导用户重新登录**(`auth login` 走扫码,或 `auth set-secret` 导入新 secret),无需手动清理本地文件
|
|
168
|
+
- 之后调用 `auth status` 会得到 `{"logged_in": false}`(**无 status 字段**,对应 §2.3 状态表最后一行)
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 4. 登出 (logout)
|
|
173
|
+
|
|
174
|
+
**命令**:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
kugou-cli auth logout
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**行为**:
|
|
181
|
+
1. **未登录时**:幂等直接返回 `{"status": "logged out"}`
|
|
182
|
+
2. **已登录时**:CLI 会先与服务端同步登出,**确认成功后才**清理本地登录态。任何一步失败都会在 stderr 报错并保留本地登录态,以便用户重试
|
|
183
|
+
3. 成功输出:`{"status": "logged out"}`
|
|
184
|
+
|
|
185
|
+
**失败场景**:
|
|
186
|
+
- 网络/服务端异常 → stderr 报错,**不清理**本地,提示用户稍后重试
|
|
187
|
+
- 此时再次执行 `auth status` 仍会显示 `logged_in: true`,本地登录态被保留
|
|
188
|
+
|
|
189
|
+
**AI 引导建议**:
|
|
190
|
+
- 用户说"登出 / 退出登录 / 注销"时直接执行 `auth logout`
|
|
191
|
+
- 看到 `{"status": "logged out"}` 后,告诉用户已成功登出,可继续 `auth login` 重新登录
|
|
192
|
+
- 看到错误时:
|
|
193
|
+
1. **自动重试 1 次**(网络抖动常见)
|
|
194
|
+
2. 仍失败 → 告知用户"登出失败,本地登录态保留,可能是网络问题",**询问**用户:"是否要稍后重试?"
|
|
195
|
+
3. **不要**擅自清理本地文件或调任何 music 命令
|
package/bin/kugou-cli.exe
DELETED
|
Binary file
|