API di cover da un clip di origine

Aggiornato il 2026-09-18 · team Suno-API

Descrizione dell'endpoint

Il cover da un clip di origine riutilizza un clip di origine già caricato, o già esistente, e ne genera una nuova versione cover.

Endpoint: POST /api/music/generate-from-source

Fatturazione: A pagamento, attualmente 0,6 ¥ per chiamata per impostazione predefinita. Caricare l'audio di origine in sé è gratuito; l'addebito avviene quando si genera un cover dal clip di origine. L'importo effettivamente addebitato segue la configurazione prezzi attuale del back-office.

Max Mode / Variety: questo endpoint supporta i parametri opzionali max_mode e variety (0-4). Con max_mode attivo, questa chiamata viene fatturata al doppio del prezzo (0,6 → 1,2 ¥ per chiamata); variety non costa nulla in più. Significato e modalità di invio sono nella sezione «Parametri avanzati» della Panoramica della nuova API.

Tempi di attesa e timeout (importante): è un endpoint sincrono — l'ordine viene accettato e passato alla generazione solo quando arriva la risposta. Dai dati misurati, la maggior parte delle richieste risponde in 1-3 secondi, circa il 10% supera i 30 secondi e la più lunga arriva a circa 230 secondi. Imposta il timeout del client a 300 secondi o più; nessuna risposta non significa che non sia stato generato 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. Vedi «Tempi di attesa e impostazione del timeout» nella Panoramica della nuova API.

Uso consigliato: è il passo 2 del «cover in due passi». Nel passo 1 carica con l'API di caricamento dell'audio di origine (gratis) e conserva il clip_id; nel passo 2 chiama questo endpoint per avviare il cover. Così l'audio compare solo nel passo gratuito: se il caricamento va male basta riprovare e non viene addebitato nulla, mentre il corpo della richiesta del passo a pagamento è di poche centinaia di byte, quindi difficilmente fallirà perché il trasferimento si è interrotto. L'API di caricamento e cover in un solo passaggio mette l'audio intero nel corpo della richiesta, quindi appena l'audio supera circa 8 MB viene facilmente troncato in transito e restituisce unexpected end of JSON input (vedi «File di grandi dimensioni e richieste troncate» in quella pagina).

Inoltre lo stesso clip_id può essere riutilizzato per Extend, Replace Section, la separazione e altre azioni successive: non serve caricare di nuovo l'audio.

Parametri della richiesta

Headers

Parametro Tipo Obbligatorio Note
Authorization string sì Bearer YOUR_API_KEY
Content-Type string sì application/json

Parametri del body

Parametro Tipo Obbligatorio Predefinito Note
model string no suno-v6 Nome del modello lato cliente: suno-v6, suno-v6-wild o suno-v6-mini
sourceClipId string sì - ID del clip di origine; puoi usare il clip_id restituito dal caricamento dell'audio di origine, il song_id reale di un brano che hai già, o il song_id reale restituito al termine di un caricamento potenziato
sourceAudioUrl string no - URL dell'audio di origine
sourceTitle string no - Titolo dell'audio di origine
prompt string no - Testo nuovo o direzione creativa
customMode boolean no true Se usare la modalità personalizzata
style string no - Tag di stile
title string no - Titolo
negativeTags string no - Stile negativo
instrumental boolean no false Se il brano è strumentale
waitAudio boolean no false Se attendere il completamento dell'audio
vocalGender string no - Genere della voce
lyricsMode string no - Modalità testo
weirdnessConstraint number no - Casualità
styleWeight number no - Influenza dello stile
audio_weight number no - Dipendenza dall'audio di riferimento, intervallo 0.0-1.0; può essere inviato solo quando è fornito un clip di origine o un audio di riferimento

weirdnessConstraint, styleWeight e audio_weight accettano un decimale di proporzione da 0.0 a 1.0, non un intero percentuale; per esempio 50% si scrive 0.5. 0 è un valore valido; solo omettere il campo significa "non specificato". audio_weight corrisponde al metadata.control_sliders.audio_weight di Suno e controlla quanto il risultato si appoggia all'audio di riferimento; può essere incluso solo quando la richiesta contiene un sourceClipId valido o un audio di riferimento, quindi non inviarlo in una generazione normale di solo testo. Con customMode=true, scrivi il testo nuovo in prompt e fornisci insieme style e title; con customMode=false, scrivi la descrizione creativa in prompt. instrumental e waitAudio devono usare i booleani JSON true/false.

Questo endpoint risponde per impostazione predefinita in modo asincrono. Finché lo status restituito è pending, un audio_url vuoto è normale; attendi il completamento prima di usare l'indirizzo audio. sourceClipId deve essere un ID reale di brano/clip di origine: non usare un task_id, un client_request_id o un ID segnaposto pending:.

Che tipo di ID è sourceClipId

sourceClipId è l'identificatore reale del clip Suno usato come origine di questo cover. L'oggetto brano lato cliente della piattaforma di solito chiama questo identificatore song_id, mentre i parametri della richiesta di cover mantengono il nome sourceClipId; qui i due indicano lo stesso ID reale di brano.

Se l'origine è un caricamento potenziato, interroga prima l'attività di caricamento potenziato e attendi che status diventi completed, poi inserisci il song_id reale restituito in sourceClipId. Si consiglia di inserire anche l'audio_url e il title di quel risultato in sourceAudioUrl e sourceTitle.

Non inserire il task_id, il client_request_id o un ID segnaposto pending:enhanced-upload:* del caricamento potenziato in sourceClipId.

Esempio di richiesta

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": "Titolo dell'audio di origine",
    "prompt": "Testo nuovo o direzione creativa",
    "customMode": true,
    "style": "Mandopop, warm vocal",
    "title": "Titolo del cover",
    "negativeTags": "noise",
    "audio_weight": 0.5,
    "instrumental": false,
    "waitAudio": false
  }'

Risposta

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "new_clip_id",
        "song_title": "Titolo del cover",
        "status": "pending"
      }
    ],
    "source_update": {}
  }
}

Note

Questo endpoint cerca di risolvere a quale account appartiene il clip di origine. Se il clip di origine non può essere usato direttamente, il server può ricaricarlo in base alle informazioni dell'audio di origine e poi generare.

AvantiAPI Extend (estensione)

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