API di brano completo (Get Full Song)
Descrizione dell'endpoint
L'unione a brano completo mette insieme "il brano originale + il frammento appena generato" in un unico brano completo: dopo Extend aggiunge la sezione successiva, mentre dopo Replace Section ricuce il nuovo frammento nell'originale. L'interfaccia web ufficiale chiama questa funzione Get Full Song.
Endpoint: POST /api/music/concat
Fatturazione: A pagamento, 0,05 CNY fissi per chiamata. L'unione è disaccoppiata dal prezzo di generazione e non partecipa al Max Mode né ai moltiplicatori del profilo vocale; l'importo effettivamente addebitato segue la configurazione prezzi del back-office.
Tempi di attesa e timeout (importante): è un endpoint sincrono — l'ordine viene accettato e passato all'unione solo quando arriva la risposta. Imposta il timeout del client a 300 secondi o più; nessuna risposta non significa che non sia stato unito nulla, e non ritentare subito dopo un timeout (duplica l'ordine e riaddebita). Se la connessione è caduta, verifica più tardi con
GET /api/music/songs.
Autenticazione
| Parametro | Tipo | Obbligatorio | Note |
|---|---|---|---|
| Authorization | string | sì | Bearer YOUR_API_KEY |
| Content-Type | string | sì | application/json |
Parametri della richiesta
| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
| song_id | string | sì | - | Il song_id del frammento da unire (risultato di Extend o di Replace Section); deve essere completato |
| is_infill | boolean | no | false | false = unione di estensione; true = unione di sostituzione (infill) |
| source_audio_url | string | no | - | Indirizzo dell'audio di origine, quando il frammento proviene da un account esterno |
| source_file_name | string | no | - | Nome del file di origine, quando il frammento proviene da un account esterno |
| source_title | string | no | - | Titolo di origine, quando il frammento proviene da un account esterno |
audio_id, source_clip_id e sourceClipId sono forme equivalenti di song_id; usane una qualsiasi.
Esempio di richiesta
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
}'
Per unire dopo aver sostituito una sezione, imposta is_infill su true:
{ "song_id": "infilled_clip_id", "is_infill": true }
Risposta
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "concat_clip_id",
"song_title": "Titolo del brano di origine",
"status": "queued"
}
]
}
}
L'unione restituisce solo 1 risultato (non produce 2 brani in una volta). Salva clips[].song_id e interroga l'API di consultazione e cronologia dei brani fino a complete prima di scaricare l'audio.
Da dove viene la durata del risultato
L'unione non incolla semplicemente due file uno dietro l'altro: ritaglia il brano di origine in base ai punti temporali registrati nella cronologia del frammento:
| Modalità | Composizione del risultato |
|---|---|
is_infill: false |
brano di origine [0 .. continue_at] + l'intera lunghezza del frammento di estensione |
is_infill: true |
brano di origine [0 .. inizio] + il nuovo frammento sostituito + brano di origine [fine .. fine traccia] |
L'audio originale successivo al punto di continuazione viene quindi scartato, così nessuna sezione risulta duplicata.
Note
- Si possono unire solo frammenti completati; se un frammento è ancora in generazione, attendi che finisca.
- Il risultato è un nuovo record; il frammento originale resta e rimane utilizzabile.
- Per unire due brani diversi in uno solo usa l'API di mashup; per conservare solo una sezione usa l'API di ritaglio.
Ottenere una chiave API
Dopo la registrazione puoi creare una chiave API nella console. Ogni generazione costa 0,6 ¥ e restituisce 2 brani, i download sono illimitati e non serve un numero di telefono.
Ottieni chiave API Torna alla panoramica