API de încărcare a audio-ului sursă
Descrierea endpoint-ului
Încărcarea audio-ului sursă transformă un fișier audio local sau la distanță într-un clip sursă pe care îl pot folosi funcțiile ulterioare: cover, prelungire, înlocuire de secțiune, separare și altele.
Endpoint: POST /api/music/upload-source
Facturare: Gratuit. Acest endpoint doar încarcă audio-ul sursă; nu pornește nicio sarcină de generare.
Utilizare recomandată: este pasul 1 al «cover-ului în doi pași». Încarcă mai întâi audio-ul cu acest endpoint (gratuit, iar la eșec poți reîncerca oricând) și păstrează
clip_id-ul returnat; după ce confirmi că încărcarea a reușit (statusîntr-o stare finalizată), apelează API-ul de cover dintr-un clip sursă pentru a porni cover-ul — corpul acelei cereri are doar câteva sute de octeți, deci nu poate fi trunchiat în tranzit pentru că audio-ul este prea mare. Comparativ cu API-ul de o singură dată încarcă și fă cover, această separare este mai robustă când audio-ul este mare, rețeaua este instabilă sau același material va fi reutilizat de mai multe ori (prelungire / înlocuire / separare).
Sfaturi pentru încărcarea fișierelor mari
| Situație | Abordare recomandată |
|---|---|
| Audio-ul este deja public (are link direct https) | Folosește file_url: corpul cererii are doar câteva sute de octeți, cea mai robustă opțiune |
| Fișier local (Node / Python / desktop) | Folosește încărcare multipart (-F "file=@source.mp3") și nu seta Content-Type manual |
| Doar JSON + base64 este posibil | Atenție: Content-Length trebuie să fie numărul de octeți (Buffer.byteLength), altfel corpul poate fi trunchiat |
După terminarea încărcării, confirmă mereu că status din răspuns este deja finalizat și salvează clip_id înainte de a trece la pasul 2;
o încărcare eșuată nu se facturează și nu creează sarcină de generare — reîncearcă pur și simplu.
Parametrii cererii
Headers
Pentru cereri JSON:
| Parametru | Tip | Obligatoriu | Observații |
|---|---|---|---|
| Authorization | string | da | Bearer YOUR_API_KEY |
| Content-Type | string | da | application/json |
Nu seta Content-Type manual în cererile multipart; clientul îl generează automat.
Parametri din body
| Parametru | Tip | Obligatoriu | Implicit | Observații |
|---|---|---|---|---|
| model | string | nu | suno-v6 | Nume de model pentru client: suno-v6, suno-v6-wild sau suno-v6-mini |
| file_url | string | nu | - | URL-ul audio-ului la distanță |
| file_base64 | string | nu | - | Audio în Base64 |
| file_name | string | nu | - | Numele fișierului |
| upload_type | string | nu | file_upload | Tipul încărcării |
Exemplu de cerere JSON
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"file_url": "https://example.com/source.mp3",
"file_name": "source.mp3",
"upload_type": "file_upload"
}'
Exemplu de cerere multipart
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@source.mp3" \
-F "file_name=source.mp3" \
-F "upload_type=file_upload" \
-F "model=suno-v6"
Răspuns
{
"clip_id": "uploaded_clip_id",
"status": "complete",
"title": "source.mp3",
"image_url": "https://...",
"audio_url": "https://...",
"display_tags": "pop, vocal",
"inferred_description": "uploaded source audio",
"clip_metadata": {}
}
Obține o cheie API
Creează o cheie API în consolă după înregistrare. Fiecare generare costă 0,6 ¥ și returnează 2 piese, descărcările sunt nelimitate și nu este nevoie de număr de telefon.
Obține cheia API Înapoi la prezentare