フルソング結合 API(Get Full Song)
インターフェースの説明
フルソング結合は「元の曲 + 新しく生成した断片」を 1 曲の完全な楽曲に結合します。延長(Extend)のあとは後続のセクションをつなぎ、セクション置換(Replace Section)のあとは新しい断片を元曲に縫い戻します。公式ウェブ画面ではこの機能を Get Full Song と呼びます。
エンドポイント: POST /api/music/concat
課金: 有料、1 回あたり固定 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 と等価な書き方で、いずれか 1 つを使えば十分です。
リクエスト例
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 になるまでポーリングしてから音声を取得してください。
結果の長さはどう決まるか
結合は 2 つのファイルをそのまま前後に並べるのではなく、断片の履歴にある時点に従って元の曲を切り出します:
| モード | 結果の構成 |
|---|---|
is_infill: false |
元の曲 [0 .. continue_at] + 延長断片の全長 |
is_infill: true |
元の曲 [0 .. 開始点] + 置換後の新しい断片 + 元の曲 [終了点 .. 末尾] |
したがって「延長点より後ろ」の元音声は破棄され、同じセクションが重複することはありません。
注意事項
- 結合できるのは完了済みの断片だけです。生成中の断片は先に完了を待ってください。
- 結果は新しいレコードで、元の断片はそのまま残り、引き続き使用できます。
- 別々の 2 曲を 1 曲にまとめたい場合はマッシュアップ APIを、ある一部分だけを残したい場合はトリミング APIをご利用ください。