整首拼接 API(Get Full Song)
介面說明
整首拼接用於把「原歌 + 新生成的片段」拼成一首完整歌曲:續寫(Extend)之後接上後續段落,替換段落(Replace Section)之後把新片段縫回原曲。官方網頁端把這條能力叫 Get Full Song。
介面位址:POST /api/music/concat
計費:收費,固定 0.05 元/次。拼接與生成價解耦,不參與 Max Mode 與音色倍率,實際扣費以後台價格設定為準。
等待時間與逾時(重要):本介面是同步介面,回應返回時才代表訂單已被受理並提交拼接。請把用戶端逾時設為 300 秒以上;未收到回應不等於沒有拼接,逾時後請勿立即重試(會重複下單、重複扣費)。連線中斷可稍後用
GET /api/music/songs確認。
驗證
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
| Authorization | string | 是 | Bearer YOUR_API_KEY |
| Content-Type | string | 是 | application/json |
請求參數
| 參數名 | 型別 | 必填 | 預設值 | 說明 |
|---|---|---|---|---|
| song_id | string | 是 | - | 要拼接的那條片段 song_id(續寫產物或替換段落產物),必須已完成 |
| is_infill | boolean | 否 | false | false = 續寫拼接;true = 替換(infill)拼接 |
| source_audio_url | string | 否 | - | 片段來自外部帳號時,來源音訊位址 |
| source_file_name | string | 否 | - | 片段來自外部帳號時,來源檔案名 |
| source_title | string | 否 | - | 片段來自外部帳號時,來源標題 |
audio_id、source_clip_id、sourceClipId 是 song_id 的等價寫法,任選一個即可。
請求範例
curl -X POST https://www.suno-api.io/api/music/concat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "extended_or_replaced_clip_id",
"is_infill": false
}'
替換段落之後拼接,把 is_infill 改成 true:
{ "song_id": "infilled_clip_id", "is_infill": true }
回應結果
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "concat_clip_id",
"song_title": "來源歌名",
"status": "queued"
}
]
}
}
拼接只返回 1 條結果(不是一次出 2 首)。請保存 clips[].song_id,再用歌曲查詢 API輪詢到 complete 後取音訊。
結果時長怎麼來的
拼接不是把兩個檔案直接首尾相接,而是按片段歷史裡的時間點裁剪來源歌:
| 模式 | 結果構成 |
|---|---|
is_infill: false |
來源歌 [0 .. continue_at] + 續寫片段全長 |
is_infill: true |
來源歌 [0 .. 起點] + 替換後的新片段 + 來源歌 [終點 .. 結尾] |
因此「續寫點之後」的原音訊會被丟棄,不會出現整段重複。