Kaynak ses yükleme API'si

2026-09-18 tarihinde güncellendi · Suno-API ekibi

Uç nokta açıklaması

Kaynak ses yükleme, yerel veya uzak bir ses dosyasını sonraki yeteneklerin kullanabileceği bir kaynak klip'e dönüştürür: cover, uzatma, bölüm değiştirme, kanal ayırma ve diğerleri.

Uç nokta: POST /api/music/upload-source

Faturalama: Ücretsiz. Bu uç nokta yalnızca kaynak sesi yükler; üretim görevi başlatmaz.

Önerilen kullanım: bu «iki adımlı cover»ın 1. adımıdır. Önce sesi bu uç noktayla yükleyin (ücretsizdir ve başarısız olduğunda istediğiniz zaman yeniden deneyebilirsiniz) ve dönen clip_id değerini saklayın; yüklemenin başarılı olduğunu doğruladıktan sonra (status tamamlanmış durumda), cover'ı başlatmak için kaynak klipten cover API'sini çağırın — o adımın istek gövdesi yalnızca birkaç yüz bayttır, bu yüzden ses çok büyük olduğu için iletim sırasında kesilemez. Tek seferlik yükle ve cover yap API'sine kıyasla bu ayrım ses büyükse, ağ kararsızsa veya aynı malzeme birden çok kez kullanılacaksa (uzatma / değiştirme / ayırma) daha güvenilirdir.

Büyük dosya yükleme önerileri

Durum Önerilen yaklaşım
Ses zaten herkese açık (https doğrudan bağlantısı var) file_url kullanın: istek gövdesi yalnızca birkaç yüz bayt, en güvenilir seçenek
Geçici imzalı URL (ByteDance vb.) file_url yalnızca URL herkese açık ve hâlâ geçerliyken kullanılmalı; aksi halde multipart veya hemen yükleme kullanın
Yerel dosya (Node / Python / masaüstü) multipart yükleme kullanın (-F "file=@source.mp3") ve Content-Type değerini elle ayarlamayın
Yalnızca JSON + base64 mümkün Dikkat: Content-Length bayt sayısı olmalıdır (Buffer.byteLength), aksi halde gövde kesilebilir

Yükleme bittikten sonra yanıttaki status değerinin tamamlanmış olduğunu mutlaka doğrulayın ve 2. adıma geçmeden clip_id değerini saklayın; başarısız yükleme ücretlendirilmez ve üretim görevi oluşturmaz — yeniden denemeniz yeterlidir.

Yüklemeden önce file_url adresini kontrol edin

file_url adresini tarayıcınız değil, platform sunucumuz HTTP ile indirir. Tarayıcıda açılan bir URL'nin üretim sunucusundan erişilebilir olduğu anlamına gelmez.

Yerel dosyalar için file alanıyla multipart yükleme kullanın. ByteDance bağlantıları veya geçici imzalı URL'ler için, URL herkese açık ve istek gönderildiğinde hâlâ geçerli değilse file_url kullanmayın.

Yükleme isteğini göndermeden önce bunu herkese açık bir sunucudan çalıştırın:

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

GET isteği HTTP 200 ile bitmeli, ses MIME türü döndürmeli ve boş olmayan veri içermelidir. Giriş sayfaları, HTML yanıtları ve 401, 403, 404 veya 410 kodları sunucu tarafından kullanılamaz.

file_url download failed: HTTP 404 genellikle imzanın süresinin dolduğunu, dosyanın silindiğini veya URL parametrelerinin eksik olduğunu gösterir.

Bu yükleme ücretsizdir. file_url indirmesi başarısız olursa clip_id, şarkı görevi veya üretim çağrısı oluşturulmaz ve ücret alınmaz; iade gerekmez.

İstek parametreleri

Headers

JSON istekleri için:

Parametre Tür Zorunlu Notlar
Authorization string evet Bearer YOUR_API_KEY
Content-Type string evet application/json

multipart isteklerinde Content-Type değerini elle ayarlamayın; istemci otomatik oluşturur.

Gövde parametreleri

Parametre Tür Zorunlu Varsayılan Notlar
model string hayır suno-v6 Müşteriye görünen model adı: suno-v6, suno-v6-wild veya suno-v6-mini
file_url string hayır - Uzak sesin URL'si
file_base64 string hayır - Base64 ses
file dosya (multipart) hayır - Yüklenecek ses dosyası; alan adı file olmalıdır
file_name string hayır - Dosya adı
upload_type string hayır file_upload Yükleme türü

JSON istek örneği

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"
  }'

multipart istek örneği

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())

Yanıt

{
  "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": {}
}
SonrakiGüçlendirilmiş yükleme API'si

API anahtarı alın

Kaydolduktan sonra konsoldan bir API anahtarı oluşturun. Her üretim 0,6 ¥ tutarındadır ve 2 parça döner, indirmeler sınırsızdır ve telefon numarası gerekmez.

API anahtarı al Genel bakışa dön