Kaynak ses yükleme API'si
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_iddeğerini saklayın; yüklemenin başarılı olduğunu doğruladıktan sonra (statustamamlanmış 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_urladresini 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": {}
}
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