ソース clip からのカバー API
インターフェースの説明
ソース clip ベースのカバーは、すでにアップロード済み、または既存のソース clip を再利用し、それを元に新しいカバーバージョンを生成します。
エンドポイント: POST /api/music/generate-from-source
課金: 有料、現在は既定で 1 回 0.6 元。ソース音声のアップロード自体は無料で、ソース clip からカバーを生成する時に課金されます。実際の請求額は現在の管理画面の価格設定に従います。
Max Mode / Variety: 本エンドポイントは任意パラメータ max_mode と variety(0〜4)に対応しています。
max_mode を有効にするとこの 1 回は 2 倍の価格で課金され(0.6 → 1.2 元/回)、variety に追加課金は
ありません。両者の意味と書き方は新版 API 概要の「高度なパラメータ」の節をご覧ください。
待ち時間とタイムアウト(重要): 本エンドポイントは同期インターフェースで、レスポンスが返った時点で初めて注文が受理され生成に投入されます。実測では多くのリクエストが 1〜3 秒で返り、約 10% が 30 秒を超え、最長は約 230 秒です。クライアントのタイムアウトは 300 秒以上に設定してください。レスポンスが無いことは未生成を意味せず、タイムアウト直後の再試行は注文の重複と二重課金につながります。 接続が切れた場合は少し後に
GET /api/music/songsで確認できます。詳しくは新版 API 概要の「待ち時間とタイムアウト設定」をご覧ください。
推奨の使い方: これは「2 段階カバー」の 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 が空なのは正常です。完了を待ってから音声 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 をそのまま使えない場合、サーバーはソース音声の情報をもとに再アップロードしてから生成することがあります。