API för cover från ett källklipp
Beskrivning av ändpunkten
Cover från ett källklipp återanvänder ett källklipp som du redan har laddat upp, eller som redan finns, och skapar en ny coverversion utifrån det.
Ändpunkt: POST /api/music/generate-from-source
Fakturering: Betalt, för närvarande som standard 0,6 ¥ per anrop. Själva uppladdningen av källjudet är gratis; debiteringen sker när du skapar en cover från källklippet. Det faktiskt debiterade beloppet följer den aktuella prisinställningen i backoffice.
Max Mode / Variety: den här ändpunkten stöder de valfria parametrarna max_mode och variety (0-4). Med
max_mode på debiteras anropet till dubbelt pris (0,6 → 1,2 ¥ per anrop); variety kostar
inget extra. Vad de betyder och hur de skickas står i avsnittet "Avancerade parametrar" i
Översikt över det nya API:t.
Väntetider och timeouts (viktigt): detta är en synkron ändpunkt — beställningen accepteras och lämnas till generering först när svaret kommer. Mätt: de flesta anrop svarar på 1-3 sekunder, omkring 10% tar längre än 30 sekunder och det längsta är cirka 230 sekunder. Ställ in klientens timeout på 300 sekunder eller mer; inget svar betyder inte att inget genererades, och försök inte igen direkt efter en timeout (det duplicerar beställningen och debiterar igen). Om anslutningen bröts, kontrollera senare med
GET /api/music/songs. Se "Väntetider och timeout-inställningar" i Översikt över det nya API:t.
Rekommenderad användning: det här är steg 2 i "cover i två steg". I steg 1 laddar du upp med API för att ladda upp källjud (gratis) och sparar
clip_id; i steg 2 anropar du den här ändpunkten för att starta covern. På så sätt förekommer ljudet bara i det kostnadsfria steget: går uppladdningen fel är det bara att försöka igen och inget debiteras, medan begärans body i det debiterade steget bara är några hundra byte, så den kan knappast misslyckas för att överföringen bryts. API för uppladdning och cover i ett steg lägger hela ljudet i begärans body, så när ljudet passerar ungefär 8 MB blir det lätt trunkerat under överföringen och returnerarunexpected end of JSON input(se "Stora filer och trunkerade begäranden" på den sidan).Dessutom kan samma
clip_idåteranvändas för Extend, Replace Section, separation och andra efterföljande åtgärder, så ljudet behöver inte laddas upp igen.
Begäransparametrar
Headers
| Parameter | Typ | Krävs | Anmärkningar |
|---|---|---|---|
| Authorization | string | ja | Bearer YOUR_API_KEY |
| Content-Type | string | ja | application/json |
Brödtextparametrar
| Parameter | Typ | Krävs | Standard | Anmärkningar |
|---|---|---|---|---|
| model | string | nej | suno-v6 | Kundvänt modellnamn: suno-v6, suno-v6-wild eller suno-v6-mini |
| sourceClipId | string | ja | - | Källklippets ID; du kan använda clip_id som uppladdningen av källjud returnerar, det riktiga song_id för en låt du redan har, eller det riktiga song_id som returneras när en förstärkt uppladdning har slutförts |
| sourceAudioUrl | string | nej | - | URL till källjudet |
| sourceTitle | string | nej | - | Titel på källjudet |
| prompt | string | nej | - | Ny text eller kreativ inriktning |
| customMode | boolean | nej | true | Om anpassat läge används |
| style | string | nej | - | Stiltaggar |
| title | string | nej | - | Titel |
| negativeTags | string | nej | - | Negativ stil |
| instrumental | boolean | nej | false | Om låten är instrumentell |
| waitAudio | boolean | nej | false | Om väntan på att ljudet blir klart |
| vocalGender | string | nej | - | Röstens kön |
| lyricsMode | string | nej | - | Textläge |
| weirdnessConstraint | number | nej | - | Slumpmässighet |
| styleWeight | number | nej | - | Stilpåverkan |
| audio_weight | number | nej | - | Beroende av referensljudet, intervall 0.0-1.0; kan bara skickas när ett källklipp eller referensljud anges |
weirdnessConstraint, styleWeight och audio_weight tar ett decimaltal som förhållande från 0.0 till 1.0, inte ett procenttal som heltal; 50 % skrivs till exempel 0.5. 0 är ett giltigt värde; endast om fältet utelämnas betyder det "ej angivet". audio_weight mappas till Sunos metadata.control_sliders.audio_weight och styr hur mycket resultatet lutar mot referensljudet; det får bara skickas med när begäran innehåller ett giltigt sourceClipId eller referensljud, så skicka inte med det vid vanlig generering med bara text. Med customMode=true skriver du den nya texten i prompt och anger både style och title; med customMode=false skriver du den kreativa beskrivningen i prompt. instrumental och waitAudio måste använda JSON-booleska true/false.
Den här ändpunkten svarar som standard asynkront. Så länge den returnerade status är pending är en tom audio_url normalt; vänta tills den är klar innan du använder ljudadressen. sourceClipId måste vara ett riktigt käll-låt-/klipp-ID — använd inte task_id, client_request_id eller ett pending:-platshållar-ID.
Vilken typ av ID är sourceClipId
sourceClipId är den riktiga Suno-klippidentifierare som används som källa för den här covern. Plattformens kundvända låtobjekt kallar vanligtvis den här identifieraren song_id, medan coverbegärans parametrar behåller namnet sourceClipId; här betyder båda samma riktiga låt-ID.
Om källan är en förstärkt uppladdning, fråga först av den förstärkta uppladdningsuppgiften och vänta tills status blir completed, och sätt sedan det returnerade riktiga song_id i sourceClipId. Det rekommenderas att även sätta resultatets audio_url och title i sourceAudioUrl och sourceTitle.
Sätt inte den förstärkta uppladdningens task_id, client_request_id eller platshållar-ID:t pending:enhanced-upload:* i sourceClipId.
Exempelbegäran
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 på originaljudet",
"prompt": "Ny text eller kreativ inriktning",
"customMode": true,
"style": "Mandopop, warm vocal",
"title": "Coverns titel",
"negativeTags": "noise",
"audio_weight": 0.5,
"instrumental": false,
"waitAudio": false
}'
Svar
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "new_clip_id",
"song_title": "Coverns titel",
"status": "pending"
}
],
"source_update": {}
}
}
Noter
Den här ändpunkten försöker hantera frågan om vilket konto källklippet tillhör. Om källklippet inte kan användas direkt kan servern ladda upp det igen utifrån källjudets information och sedan generera.
Skaffa en API-nyckel
Skapa en API-nyckel i konsolen efter registreringen. Varje generering kostar 0,6 ¥ och returnerar 2 spår, nedladdningar är obegränsade och inget telefonnummer krävs.
Hämta API-nyckel Tillbaka till översikten