🎵 Suno AI 音乐创作助手
两大核心能力:账号登录(通过 Google OAuth)和 歌曲创作(自定义歌词+风格+下载)。
零、前置检查
每次操作前必须先执行环境检查:
bash {baseDir}/suno/check_env.sh
返回码:0 = 正常已登录 → 可直接创建歌曲;1 = 缺少依赖 → 安装依赖;2 = 未登录 → 登录流程。
一、登录流程
⚠️ 重要:不要在 skill 代码中硬编码账号密码!必须先询问用户的 Gmail 邮箱和密码。
1.1 询问用户凭据
当需要登录时,必须先向用户询问:
需要登录 Suno.com(通过 Google 账号)。请提供:
- Gmail 邮箱地址
- Gmail 密码
⚠️ 你的凭据仅用于本次登录,不会被存储或传输到任何第三方。
1.2 执行登录
用户提供邮箱和密码后:
cd {baseDir}/suno
python3 suno_login.py --email "<用户邮箱>" --password "<用户密码>"
登录模式说明:
- macOS/有GUI环境:会弹出 Chrome 窗口,自动完成 Google 登录
- Linux 云服务器:自动使用 Xvfb 虚拟显示(需
apt install xvfb && pip install PyVirtualDisplay)
- 首次登录必须使用 GUI 模式(默认行为),后续检查状态可以 headless
1.3 检查登录状态
cd {baseDir}/suno
python3 suno_login.py --check-only
退出码 0 = 已登录,2 = 未登录。
1.4 强制重新登录
cd {baseDir}/suno
python3 suno_login.py --email "<邮箱>" --password "<密码>" --force-login
二、创建歌曲
2.1 前置条件
- 已完成登录(
suno_login.py --check-only 返回 0)
- 需要 Gemini API Key(用于自动解决 hCaptcha 验证码)
2.2 获取 Gemini API Key
如果用户没有 Gemini API Key,引导用户获取:
创建歌曲时 Suno 会弹出验证码,需要 Gemini API Key 来自动解决。
- 访问 https://aistudio.google.com/app/apikey
- 点击 "Create API key"
- 复制生成的 Key
获取后保存到环境文件:
mkdir -p ~/.suno
echo "GEMINI_API_KEY=<用户的key>" > ~/.suno/.env
或通过环境变量:
export GEMINI_API_KEY="<用户的key>"
2.3 hCaptcha 兼容补丁
首次使用前需运行一次(Suno 使用自定义 hCaptcha 域名,需打补丁):
cd {baseDir}/suno
python3 patch_hcaptcha.py
2.4 创建歌曲命令
cd {baseDir}/suno
python3 suno_create_song.py \
--lyrics "<歌词内容>" \
--style "<音乐风格标签>" \
--title "<歌曲标题>" \
--output-dir "<下载目录>"
也可以从文件读取歌词:
cd {baseDir}/suno
python3 suno_create_song.py \
--lyrics-file "<歌词文件路径>" \
--style "<音乐风格标签>" \
--title "<歌曲标题>"
2.5 参数说明
| 参数 |
说明 |
必填 |
默认值 |
--lyrics |
歌词内容(与 --lyrics-file 二选一) |
✅ |
- |
--lyrics-file |
歌词文件路径(与 --lyrics 二选一) |
✅ |
- |
--style |
音乐风格标签(英文,逗号分隔) |
❌ |
rock, electric guitar, energetic, male vocals |
--title |
歌曲标题 |
❌ |
My Song |
--output-dir |
MP3 下载目录 |
❌ |
{baseDir}/output_mp3 |
--gemini-key |
Gemini API Key(也可通过环境变量或 ~/.suno/.env) |
❌ |
自动读取 |
2.6 音乐风格标签参考
常用风格标签(英文,可自由组合):
- 流派: rock, pop, jazz, blues, electronic, hip-hop, R&B, classical, folk, metal, country, reggae, latin, indie
- 乐器: electric guitar, acoustic guitar, piano, synthesizer, drums, bass, violin, saxophone, trumpet
- 情绪: energetic, emotional, melancholic, upbeat, dark, dreamy, aggressive, peaceful, romantic
- 人声: male vocals, female vocals, choir, rap, whisper, powerful vocals, falsetto
- 语言: chinese, japanese, korean, english, spanish
- 其他: fast tempo, slow tempo, instrumental, lo-fi, cinematic, epic
示例:
- 摇滚:
rock, electric guitar, energetic, male vocals, chinese
- 抒情:
pop, piano, emotional, female vocals, slow tempo, chinese
- 电子:
electronic, synthesizer, upbeat, fast tempo, dance
- 说唱:
hip-hop, rap, bass, drums, energetic, chinese
三、完整使用示例
示例 1:创建中文摇滚歌曲
# 1. 检查环境
bash {baseDir}/suno/check_env.sh
# 2. 如果未登录,先登录(需要用户提供邮箱密码)
cd {baseDir}/suno
python3 suno_login.py --email "user@gmail.com" --password "password123"
# 3. 确保 hCaptcha 补丁已应用
python3 patch_hcaptcha.py
# 4. 创建歌曲
python3 suno_create_song.py \
--lyrics "窗外的麻雀 在电线杆上多嘴
你说这一句 很有夏天的感觉
手中的铅笔 在纸上来来回回
我用几行字形容你是我的谁" \
--style "rock, electric guitar, energetic, male vocals, chinese" \
--title "七里香摇滚版"
示例 2:从文件读取歌词
cd {baseDir}/suno
python3 suno_create_song.py \
--lyrics-file /path/to/lyrics.txt \
--style "pop, piano, emotional, female vocals, chinese" \
--title "我的歌"
四、安装依赖(仅首次)
macOS
# 安装 Python 依赖
cd {baseDir}/suno
pip3 install -r requirements.txt
playwright install
# 确保已安装 Google Chrome
# 下载地址: https://www.google.com/chrome/
Linux 云服务器
# 系统依赖
sudo apt update && sudo apt install -y xvfb google-chrome-stable fonts-noto-cjk
# Python 依赖
cd {baseDir}/suno
pip3 install -r requirements.txt
pip3 install PyVirtualDisplay
playwright install
五、技术原理
登录方案
- 使用 Playwright + 真实 Chrome 浏览器 (
channel='chrome')
persistent context 保持浏览器状态(cookies、localStorage)
headless=False(GUI 模式)通过 Google 反自动化检测
- Linux 服务器使用 Xvfb 虚拟显示支持 GUI 模式
- 首次登录后 persistent context 自动保持会话
歌曲创建方案
- 浏览器自动化操作 suno.com/create 页面
- hcaptcha-challenger + Gemini API 自动解决 hCaptcha 验证码
- 通过拦截浏览器网络响应捕获新生成的 clip ID
- 通过 Suno 内部 API (
studio-api.prod.suno.com) 轮询歌曲生成状态
- 生成完成后自动下载 MP3 文件
文件结构
suno/
├── suno_login.py # 登录工具(通过 Google OAuth)
├── suno_create_song.py # 歌曲创建+下载工具
├── patch_hcaptcha.py # hCaptcha 域名兼容补丁
├── check_env.sh # 环境检查脚本
├── requirements.txt # Python 依赖
└── qilixiang_lyrics.txt # 示例歌词(七里香)
六、注意事项
- 不要硬编码账号密码 — 每次都需要询问用户
- Suno 免费账号每天有积分限制,每首歌消耗约 100 积分
- 歌曲生成通常需要 1-3 分钟
- 每次创建会生成 2 首不同版本的歌曲
- 如果遇到 Google 登录被拒(rejected),等待 10-30 分钟后重试
- Gemini API 免费额度:每分钟 15 次请求,每天 1500 次
headless=True 模式会被 Google 检测拦截,登录必须使用 GUI 模式
- hCaptcha 可能需要多次尝试,成功率取决于 Gemini 模型的图片识别能力
七、故障排查
# 检查环境
bash {baseDir}/suno/check_env.sh
# 查看登录截图
ls -la /tmp/suno_debug_*.png
# 检查 persistent context
ls -la ~/.suno/chrome_gui_profile/
# 查看 cookies
python3 -c "import json; d=json.load(open('$HOME/.suno/cookies.json')); print(f'{len(d)} cookies')"
# 查看 Gemini API Key
cat ~/.suno/.env
# 查看下载的歌曲
ls -la {baseDir}/output_mp3/
1---2name: suno-23description: Suno AI 音乐创作助手 — 自动登录、创建歌曲、下载音频。当用户要求生成音乐、写歌、创作歌曲、用 Suno 生成 AI 音乐时使用。支持自定义歌词、音乐风格、自动解决 hCaptcha 验证码。4---5
6# 🎵 Suno AI 音乐创作助手
7
8两大核心能力:**账号登录**(通过 Google OAuth)和 **歌曲创作**(自定义歌词+风格+下载)。
9
10---
11
12## 零、前置检查
13
14每次操作前必须先执行环境检查:
15
16```bash
17bash {baseDir}/suno/check_env.sh
18```
19
20返回码:`0` = 正常已登录 → 可直接创建歌曲;`1` = 缺少依赖 → 安装依赖;`2` = 未登录 → 登录流程。
21
22---
23
24## 一、登录流程
25
26**⚠️ 重要:不要在 skill 代码中硬编码账号密码!必须先询问用户的 Gmail 邮箱和密码。**
27
28### 1.1 询问用户凭据
29
30当需要登录时,**必须先向用户询问**:
31
32> 需要登录 Suno.com(通过 Google 账号)。请提供:
33> 1. **Gmail 邮箱地址**
34> 2. **Gmail 密码**
35>
36> ⚠️ 你的凭据仅用于本次登录,不会被存储或传输到任何第三方。
37
38### 1.2 执行登录
39
40用户提供邮箱和密码后:
41
42```bash
43cd {baseDir}/suno
44python3 suno_login.py --email "<用户邮箱>" --password "<用户密码>"
45```
46
47**登录模式说明**:
48- **macOS/有GUI环境**:会弹出 Chrome 窗口,自动完成 Google 登录
49- **Linux 云服务器**:自动使用 Xvfb 虚拟显示(需 `apt install xvfb && pip install PyVirtualDisplay`)
50- **首次登录必须使用 GUI 模式**(默认行为),后续检查状态可以 headless
51
52### 1.3 检查登录状态
53
54```bash
55cd {baseDir}/suno
56python3 suno_login.py --check-only
57```
58
59退出码 `0` = 已登录,`2` = 未登录。
60
61### 1.4 强制重新登录
62
63```bash
64cd {baseDir}/suno
65python3 suno_login.py --email "<邮箱>" --password "<密码>" --force-login
66```
67
68---
69
70## 二、创建歌曲
71
72### 2.1 前置条件
73
741. 已完成登录(`suno_login.py --check-only` 返回 0)
752. 需要 **Gemini API Key**(用于自动解决 hCaptcha 验证码)
76
77### 2.2 获取 Gemini API Key
78
79如果用户没有 Gemini API Key,引导用户获取:
80
81> 创建歌曲时 Suno 会弹出验证码,需要 Gemini API Key 来自动解决。
82> 1. 访问 https://aistudio.google.com/app/apikey
83> 2. 点击 "Create API key"
84> 3. 复制生成的 Key
85
86获取后保存到环境文件:
87
88```bash
89mkdir -p ~/.suno
90echo "GEMINI_API_KEY=<用户的key>" > ~/.suno/.env
91```
92
93或通过环境变量:
94
95```bash
96export GEMINI_API_KEY="<用户的key>"
97```
98
99### 2.3 hCaptcha 兼容补丁
100
101首次使用前需运行一次(Suno 使用自定义 hCaptcha 域名,需打补丁):
102
103```bash
104cd {baseDir}/suno
105python3 patch_hcaptcha.py
106```
107
108### 2.4 创建歌曲命令
109
110```bash
111cd {baseDir}/suno
112python3 suno_create_song.py \
113 --lyrics "<歌词内容>" \
114 --style "<音乐风格标签>" \
115 --title "<歌曲标题>" \
116 --output-dir "<下载目录>"
117```
118
119也可以从文件读取歌词:
120
121```bash
122cd {baseDir}/suno
123python3 suno_create_song.py \
124 --lyrics-file "<歌词文件路径>" \
125 --style "<音乐风格标签>" \
126 --title "<歌曲标题>"
127```
128
129### 2.5 参数说明
130
131| 参数 | 说明 | 必填 | 默认值 |
132|------|------|:---:|--------|
133| `--lyrics` | 歌词内容(与 `--lyrics-file` 二选一) | ✅ | - |
134| `--lyrics-file` | 歌词文件路径(与 `--lyrics` 二选一) | ✅ | - |
135| `--style` | 音乐风格标签(英文,逗号分隔) | ❌ | `rock, electric guitar, energetic, male vocals` |
136| `--title` | 歌曲标题 | ❌ | `My Song` |
137| `--output-dir` | MP3 下载目录 | ❌ | `{baseDir}/output_mp3` |
138| `--gemini-key` | Gemini API Key(也可通过环境变量或 ~/.suno/.env) | ❌ | 自动读取 |
139
140### 2.6 音乐风格标签参考
141
142常用风格标签(英文,可自由组合):
143
144- **流派**: rock, pop, jazz, blues, electronic, hip-hop, R&B, classical, folk, metal, country, reggae, latin, indie
145- **乐器**: electric guitar, acoustic guitar, piano, synthesizer, drums, bass, violin, saxophone, trumpet
146- **情绪**: energetic, emotional, melancholic, upbeat, dark, dreamy, aggressive, peaceful, romantic
147- **人声**: male vocals, female vocals, choir, rap, whisper, powerful vocals, falsetto
148- **语言**: chinese, japanese, korean, english, spanish
149- **其他**: fast tempo, slow tempo, instrumental, lo-fi, cinematic, epic
150
151**示例**:
152- 摇滚: `rock, electric guitar, energetic, male vocals, chinese`
153- 抒情: `pop, piano, emotional, female vocals, slow tempo, chinese`
154- 电子: `electronic, synthesizer, upbeat, fast tempo, dance`
155- 说唱: `hip-hop, rap, bass, drums, energetic, chinese`
156
157---
158
159## 三、完整使用示例
160
161### 示例 1:创建中文摇滚歌曲
162
163```bash
164# 1. 检查环境
165bash {baseDir}/suno/check_env.sh
166
167# 2. 如果未登录,先登录(需要用户提供邮箱密码)
168cd {baseDir}/suno
169python3 suno_login.py --email "user@gmail.com" --password "password123"
170
171# 3. 确保 hCaptcha 补丁已应用
172python3 patch_hcaptcha.py
173
174# 4. 创建歌曲
175python3 suno_create_song.py \
176 --lyrics "窗外的麻雀 在电线杆上多嘴
177你说这一句 很有夏天的感觉
178手中的铅笔 在纸上来来回回
179我用几行字形容你是我的谁" \
180 --style "rock, electric guitar, energetic, male vocals, chinese" \
181 --title "七里香摇滚版"
182```
183
184### 示例 2:从文件读取歌词
185
186```bash
187cd {baseDir}/suno
188python3 suno_create_song.py \
189 --lyrics-file /path/to/lyrics.txt \
190 --style "pop, piano, emotional, female vocals, chinese" \
191 --title "我的歌"
192```
193
194---
195
196## 四、安装依赖(仅首次)
197
198### macOS
199
200```bash
201# 安装 Python 依赖
202cd {baseDir}/suno
203pip3 install -r requirements.txt
204playwright install
205
206# 确保已安装 Google Chrome
207# 下载地址: https://www.google.com/chrome/
208```
209
210### Linux 云服务器
211
212```bash
213# 系统依赖
214sudo apt update && sudo apt install -y xvfb google-chrome-stable fonts-noto-cjk
215
216# Python 依赖
217cd {baseDir}/suno
218pip3 install -r requirements.txt
219pip3 install PyVirtualDisplay
220playwright install
221```
222
223---
224
225## 五、技术原理
226
227### 登录方案
228- 使用 Playwright + 真实 Chrome 浏览器 (`channel='chrome'`)
229- `persistent context` 保持浏览器状态(cookies、localStorage)
230- `headless=False`(GUI 模式)通过 Google 反自动化检测
231- Linux 服务器使用 Xvfb 虚拟显示支持 GUI 模式
232- 首次登录后 persistent context 自动保持会话
233
234### 歌曲创建方案
235- 浏览器自动化操作 suno.com/create 页面
236- hcaptcha-challenger + Gemini API 自动解决 hCaptcha 验证码
237- 通过拦截浏览器网络响应捕获新生成的 clip ID
238- 通过 Suno 内部 API (`studio-api.prod.suno.com`) 轮询歌曲生成状态
239- 生成完成后自动下载 MP3 文件
240
241### 文件结构
242
243```
244suno/
245├── suno_login.py # 登录工具(通过 Google OAuth)
246├── suno_create_song.py # 歌曲创建+下载工具
247├── patch_hcaptcha.py # hCaptcha 域名兼容补丁
248├── check_env.sh # 环境检查脚本
249├── requirements.txt # Python 依赖
250└── qilixiang_lyrics.txt # 示例歌词(七里香)
251```
252
253---
254
255## 六、注意事项
256
2571. **不要硬编码账号密码** — 每次都需要询问用户
2582. Suno 免费账号每天有积分限制,每首歌消耗约 100 积分
2593. 歌曲生成通常需要 1-3 分钟
2604. 每次创建会生成 2 首不同版本的歌曲
2615. 如果遇到 Google 登录被拒(rejected),等待 10-30 分钟后重试
2626. Gemini API 免费额度:每分钟 15 次请求,每天 1500 次
2637. `headless=True` 模式会被 Google 检测拦截,**登录必须使用 GUI 模式**
2648. hCaptcha 可能需要多次尝试,成功率取决于 Gemini 模型的图片识别能力
265
266## 七、故障排查
267
268```bash
269# 检查环境
270bash {baseDir}/suno/check_env.sh
271
272# 查看登录截图
273ls -la /tmp/suno_debug_*.png
274
275# 检查 persistent context
276ls -la ~/.suno/chrome_gui_profile/
277
278# 查看 cookies
279python3 -c "import json; d=json.load(open('$HOME/.suno/cookies.json')); print(f'{len(d)} cookies')"
280
281# 查看 Gemini API Key
282cat ~/.suno/.env
283
284# 查看下载的歌曲
285ls -la {baseDir}/output_mp3/
286```