API de încărcare a audio-ului sursă

Actualizat pe 2026-09-18 · echipa Suno-API

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
URL semnat temporar (ByteDance și altele) Folosește file_url numai cât timp URL-ul este public și valid; altfel folosește multipart sau încarcă imediat
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.

Verifică file_url înainte de încărcare

Serverul platformei descarcă singur file_url prin HTTP, nu browserul. Un URL care se deschide în browser nu este neapărat accesibil de pe serverele de producție.

Pentru fișiere locale, folosește upload multipart cu câmpul file. Nu folosi file_url pentru linkuri ByteDance sau URL-uri semnate temporar decât dacă sunt publice și încă valide când trimiți cererea.

Rulează comanda de pe un server public înainte de a trimite cererea:

curl -L --max-time 30 -D - -o /dev/null "https://example.com/source.mp3"

Cererea GET trebuie să se încheie cu HTTP 200, să returneze un MIME audio și să conțină date. Paginile de autentificare, răspunsurile HTML și codurile 401, 403, 404 sau 410 nu pot fi folosite de server.

file_url download failed: HTTP 404 înseamnă de obicei că semnătura a expirat, fișierul a fost șters sau parametrii URL lipsesc.

Încărcarea este gratuită. Dacă descărcarea file_url eșuează, nu se creează clip_id, task de melodie sau apel de generare și nu se percepe nicio taxă; nu este necesară rambursarea.

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 fișier (multipart) nu - Fișierul audio de încărcat; numele câmpului trebuie să fie file
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"
import requests

with open("source.mp3", "rb") as audio:
    response = requests.post(
        "https://www.suno-api.io/api/music/upload-source",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        data={
            "file_name": "source.mp3",
            "upload_type": "file_upload",
            "model": "suno-v6",
        },
        files={"file": ("source.mp3", audio, "audio/mpeg")},
        timeout=300,
    )

response.raise_for_status()
print(response.json())

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": {}
}
UrmătorulAPI de încărcare întărită

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