基於來源 clip 翻唱 API
介面說明
基於來源 clip 翻唱用於複用已經上傳或已有的來源 clip,並基於它生成新的翻唱版本。
介面位址:POST /api/music/generate-from-source
計費:收費,目前預設 0.6 元/次。上傳來源音訊本身免費,基於來源 clip 生成翻唱時收費;實際扣費以目前後台價格設定為準。
Max Mode / Variety:本介面支援選用參數 max_mode 與 variety(0-4)。開啟 max_mode
時本次依 2 倍價格計費(0.6 → 1.2 元/次),variety 不額外計費;兩者含義與寫法見
Suno API 介面文件總覽 的「進階參數」一節。
等待時間與逾時(重要):本介面是同步介面,回應返回時才代表訂單已被受理並提交生成。實測多數請求 1–3 秒返回,約 10% 超過 30 秒,最長約 230 秒。請把用戶端逾時設為 300 秒以上;未收到回應不等於沒有生成,逾時後請勿立即重試(會重複下單、重複扣費)。 連線中斷可稍後用
GET /api/music/songs確認。詳見 Suno API 介面文件總覽的「等待時間與逾時設定」。
推薦用法:它是「兩步式翻唱」的第 2 步。 第 1 步先用上傳來源音訊 API 上傳(免費)並取得
clip_id, 第 2 步再用本介面發起翻唱。這樣音訊只出現在免費的那一步:傳壞了直接重試,不會扣費, 而計費這一步的請求主體只有幾百位元組,幾乎不可能因為傳輸中斷而失敗。 一次性的上傳後翻唱 API 會把整個音訊放進請求主體, 音訊超過約 8MB 時容易因為傳輸被截斷而回傳unexpected end of JSON input(詳見該頁的「大檔案與請求被截斷」)。另外,同一個
clip_id可以重複用於續寫、替換片段、分軌等後續動作,不必重複上傳音訊。
請求參數
Headers
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
| Authorization | string | 是 | Bearer YOUR_API_KEY |
| Content-Type | string | 是 | application/json |
Body 參數
| 參數名 | 型別 | 必填 | 預設值 | 說明 |
|---|---|---|---|---|
| model | string | 否 | suno-v6 | 對客模型名:suno-v6、suno-v6-wild 或 suno-v6-mini |
| sourceClipId | string | 是 | - | 來源 clip ID;可使用上傳來源音訊回傳的 clip_id、已有歌曲的真實 song_id,或強化上傳完成後回傳的真實 song_id |
| sourceAudioUrl | string | 否 | - | 來源音訊 URL |
| sourceTitle | string | 否 | - | 來源音訊標題 |
| prompt | string | 否 | - | 新歌詞或創作方向 |
| customMode | boolean | 否 | true | 是否使用專業模式 |
| style | string | 否 | - | 風格標籤 |
| title | string | 否 | - | 標題 |
| negativeTags | string | 否 | - | 負向風格 |
| instrumental | boolean | 否 | false | 是否純音樂 |
| waitAudio | boolean | 否 | false | 是否等待音訊完成 |
| vocalGender | string | 否 | - | 演唱性別 |
| lyricsMode | string | 否 | - | 歌詞模式 |
| weirdnessConstraint | number | 否 | - | 隨機度 |
| styleWeight | number | 否 | - | 風格影響權重 |
| audio_weight | number | 否 | - | 參考音訊依賴度,範圍 0.0-1.0;僅在提供來源 clip 或參考音訊時可傳 |
weirdnessConstraint、styleWeight 和 audio_weight 的取值均為 0.0 到 1.0 的比例小數,不是百分比整數;例如 50% 應填 0.5。0 是有效值,省略欄位才表示不指定。audio_weight 會對應到 Suno 的 metadata.control_sliders.audio_weight,用於控制生成結果對參考音訊的依賴程度;只有請求中存在有效的 sourceClipId 或參考音訊時才可帶上,一般純文字生成不要傳。customMode=true 時,prompt 應填新歌詞,style 和 title 應同時提供;customMode=false 時,prompt 應填創作描述。instrumental、waitAudio 必須使用 JSON 布林值 true/false。
本介面預設非同步回傳。回傳的 status 為 pending 時,audio_url 為空屬於正常現象;請等待完成後再使用音訊位址。sourceClipId 必須是真實來源歌曲/clip ID,不能使用 task_id、client_request_id 或 pending: 佔位 ID。
sourceClipId 是什麼 ID
sourceClipId 表示作為本次翻唱來源的真實 Suno clip 識別碼。平台對外的歌曲物件通常把這個識別碼命名為 song_id,而翻唱請求參數沿用 sourceClipId;在這裡兩者表示同一個真實歌曲 ID。
如果來源是強化上傳,請先查詢強化上傳任務,等待 status 變為 completed,再把回傳的真實 song_id 填入 sourceClipId。建議同時把該結果的 audio_url 和 title 分別填入 sourceAudioUrl、sourceTitle。
不要把強化上傳的 task_id、client_request_id 或 pending:enhanced-upload:* 佔位 ID 填入 sourceClipId。
請求範例
curl -X POST https://www.suno-api.io/api/music/generate-from-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"sourceClipId": "uploaded_or_existing_clip_id",
"sourceAudioUrl": "https://example.com/source.mp3",
"sourceTitle": "原始音訊標題",
"prompt": "新的歌詞或創作方向",
"customMode": true,
"style": "Mandopop, warm vocal",
"title": "翻唱標題",
"negativeTags": "noise",
"audio_weight": 0.5,
"instrumental": false,
"waitAudio": false
}'
回應結果
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "new_clip_id",
"song_title": "翻唱標題",
"status": "pending"
}
],
"source_update": {}
}
}
說明
本介面會盡量處理來源 clip 所屬帳號問題。若來源 clip 無法直接使用,伺服器可能依來源音訊資訊重新上傳後再生成。