API voor cover op basis van een bronclip
Beschrijving van het endpoint
Een cover op basis van een bronclip hergebruikt een bronclip die u al hebt geüpload, of die al bestaat, en genereert daarmee een nieuwe coverversie.
Endpoint: POST /api/music/generate-from-source
Facturering: Betaald, momenteel standaard 0,6 ¥ per aanroep. Het uploaden van de bronaudio zelf is gratis; er wordt afgerekend wanneer u een cover op basis van de bronclip genereert. Het werkelijk gefactureerde bedrag volgt de huidige prijsconfiguratie in de back-office.
Max Mode / Variety: dit endpoint ondersteunt de optionele parameters max_mode en variety (0-4). Met
max_mode aan wordt deze aanroep tegen het dubbele tarief gefactureerd (0,6 → 1,2 ¥ per aanroep); variety kost
niets extra. Wat ze betekenen en hoe u ze verstuurt, staat in de sectie "Geavanceerde parameters" van het
Overzicht van de nieuwe API.
Wachttijden en timeouts (belangrijk): dit is een synchroon endpoint — de opdracht wordt pas geaccepteerd en aan generatie overgedragen wanneer het antwoord binnenkomt. Gemeten: de meeste verzoeken antwoorden in 1-3 seconden, ongeveer 10% duurt langer dan 30 seconden en de langste is ongeveer 230 seconden. Zet de client-timeout op 300 seconden of meer; geen antwoord betekent niet dat er niets is gegenereerd, en probeer niet direct na een timeout opnieuw (dat dupliceert de opdracht en rekent opnieuw af). Als de verbinding wegviel, controleer later met
GET /api/music/songs. Zie "Wachttijden en timeout-instellingen" in het Overzicht van de nieuwe API.
Aanbevolen gebruik: dit is stap 2 van de "tweetraps-cover". In stap 1 uploadt u met de API voor het uploaden van bronaudio (gratis) en bewaart u de
clip_id; in stap 2 roept u dit endpoint aan om de cover te starten. Zo verschijnt de audio alleen in de gratis stap: mislukt de upload, dan probeert u het gewoon opnieuw en wordt er niets afgerekend, terwijl de requestbody van de betaalde stap maar een paar honderd bytes is en dus nauwelijks kan mislukken doordat de overdracht wordt afgebroken. De API voor uploaden en coveren in één keer zet de hele audio in de requestbody, dus zodra de audio groter is dan ongeveer 8 MB wordt die onderweg gemakkelijk afgekapt en krijgt uunexpected end of JSON input(zie "Grote bestanden en afgekapte requests" op die pagina).Bovendien kan dezelfde
clip_idopnieuw worden gebruikt voor Extend, Replace Section, separatie en andere vervolgacties; de audio hoeft niet nog eens te worden geüpload.
Verzoekparameters
Headers
| Parameter | Type | Verplicht | Opmerkingen |
|---|---|---|---|
| Authorization | string | ja | Bearer YOUR_API_KEY |
| Content-Type | string | ja | application/json |
Body-parameters
| Parameter | Type | Verplicht | Standaard | Opmerkingen |
|---|---|---|---|---|
| model | string | nee | suno-v6 | Klantgerichte modelnaam: suno-v6, suno-v6-wild of suno-v6-mini |
| sourceClipId | string | ja | - | ID van de bronclip; u kunt de clip_id uit het uploaden van bronaudio gebruiken, de echte song_id van een nummer dat u al hebt, of de echte song_id die terugkomt wanneer een versterkte upload is voltooid |
| sourceAudioUrl | string | nee | - | URL van de bronaudio |
| sourceTitle | string | nee | - | Titel van de bronaudio |
| prompt | string | nee | - | Nieuwe tekst of creatieve richting |
| customMode | boolean | nee | true | Of de aangepaste modus wordt gebruikt |
| style | string | nee | - | Stijltags |
| title | string | nee | - | Titel |
| negativeTags | string | nee | - | Negatieve stijl |
| instrumental | boolean | nee | false | Of het nummer instrumentaal is |
| waitAudio | boolean | nee | false | Of wordt gewacht tot de audio klaar is |
| vocalGender | string | nee | - | Geslacht van de stem |
| lyricsMode | string | nee | - | Tekstmodus |
| weirdnessConstraint | number | nee | - | Willekeur |
| styleWeight | number | nee | - | Stijlinvloed |
| audio_weight | number | nee | - | Afhankelijkheid van de referentieaudio, bereik 0.0-1.0; alleen te verzenden wanneer een bronclip of referentieaudio is opgegeven |
weirdnessConstraint, styleWeight en audio_weight nemen alle een decimale verhouding van 0.0 tot 1.0, geen percentage als geheel getal; 50% schrijft u bijvoorbeeld als 0.5. 0 is een geldige waarde; alleen het weglaten van het veld betekent "niet opgegeven". audio_weight wordt toegewezen aan Suno's metadata.control_sliders.audio_weight en bepaalt hoe sterk het resultaat op de referentieaudio leunt; het mag alleen worden meegestuurd als het verzoek een geldige sourceClipId of referentieaudio bevat, dus stuur het niet mee bij een gewone generatie met alleen tekst. Bij customMode=true zet u de nieuwe tekst in prompt en geeft u zowel style als title op; bij customMode=false zet u de creatieve beschrijving in prompt. instrumental en waitAudio moeten de JSON-booleans true/false gebruiken.
Dit endpoint antwoordt standaard asynchroon. Zolang de teruggegeven status pending is, is een lege audio_url normaal; wacht tot het klaar is voordat u het audioadres gebruikt. sourceClipId moet een echte bron-song-/clip-ID zijn: gebruik geen task_id, geen client_request_id en geen pending:-plaatshouder-ID.
Wat voor ID is sourceClipId
sourceClipId is de echte Suno-clipidentificatie die als bron van deze cover dient. Het klantgerichte nummerobject van het platform noemt deze identificatie meestal song_id, terwijl de cover-aanvraagparameters de naam sourceClipId aanhouden; hier betekenen beide dezelfde echte nummer-ID.
Is de bron een versterkte upload, vraag dan eerst de versterkte uploadtaak op, wacht tot status completed wordt en zet daarna de teruggegeven echte song_id in sourceClipId. Het is aan te raden ook de audio_url en title van dat resultaat in sourceAudioUrl en sourceTitle te zetten.
Zet geen task_id, client_request_id of pending:enhanced-upload:*-plaatshouder-ID van een versterkte upload in sourceClipId.
Voorbeeldverzoek
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": "Titel van de originele audio",
"prompt": "Nieuwe tekst of creatieve richting",
"customMode": true,
"style": "Mandopop, warm vocal",
"title": "Titel van de cover",
"negativeTags": "noise",
"audio_weight": 0.5,
"instrumental": false,
"waitAudio": false
}'
Antwoord
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "new_clip_id",
"song_title": "Titel van de cover",
"status": "pending"
}
],
"source_update": {}
}
}
Opmerkingen
Dit endpoint probeert het vraagstuk op te lossen bij welk account de bronclip hoort. Kan de bronclip niet direct worden gebruikt, dan kan de server die op basis van de bronaudio-informatie opnieuw uploaden en daarna genereren.
Een API-sleutel aanvragen
Maak na je registratie een API-sleutel aan in de console. Elke generatie kost ¥0,6 en levert 2 nummers op, downloads zijn onbeperkt en een telefoonnummer is niet nodig.
API-sleutel ophalen Terug naar overzicht