Kaynak klipten cover API'si
Uç nokta açıklaması
Kaynak klipten cover, daha önce yüklediğiniz ya da hâlihazırda var olan bir kaynak klibi yeniden kullanır ve ondan yeni bir cover sürümü üretir.
Uç nokta: POST /api/music/generate-from-source
Faturalama: Ücretli, şu anda varsayılan olarak çağrı başına 0,6 ¥. Kaynak sesin yüklenmesi kendi başına ücretsizdir; ücret, kaynak klipten cover üretildiğinde alınır. Gerçekte tahsil edilen tutar güncel arka ofis fiyat yapılandırmasına göre belirlenir.
Max Mode / Variety: bu uç nokta isteğe bağlı max_mode ve variety (0-4) parametrelerini destekler. max_mode
açıkken bu çağrı 2 kat fiyattan faturalanır (0,6 → 1,2 ¥ / çağrı); variety için ek ücret alınmaz.
Anlamları ve nasıl gönderilecekleri Yeni API genel bakışı sayfasındaki
"Gelişmiş parametreler" bölümündedir.
Bekleme süreleri ve zaman aşımları (önemli): bu uç nokta senkrondur — sipariş ancak yanıt geldiğinde kabul edilir ve üretime verilir. Ölçümlere göre isteklerin çoğu 1-3 saniyede yanıtlanır, yaklaşık %10'u 30 saniyeyi aşar ve en uzunu yaklaşık 230 saniyedir. İstemci zaman aşımını 300 saniye veya üzerine ayarlayın; yanıt gelmemesi hiçbir şey üretilmediği anlamına gelmez ve zaman aşımından hemen sonra yeniden denemeyin (siparişi çoğaltır ve tekrar ücret alır). Bağlantı koptuysa daha sonra
GET /api/music/songsile kontrol edin. Yeni API genel bakışı sayfasındaki "Bekleme süreleri ve zaman aşımı ayarları" bölümüne bakın.
Önerilen kullanım: bu «iki adımlı cover»ın 2. adımıdır.
- adımda Kaynak ses yükleme API'si ile yükleyin (ücretsiz) ve
clip_iddeğerini saklayın;- adımda cover'ı başlatmak için bu uç noktayı çağırın. Böylece ses yalnızca ücretsiz adımda görünür: yükleme bozuk olursa yeniden denersiniz ve hiçbir ücret alınmaz; ücret alınan adımın istek gövdesi ise yalnızca birkaç yüz bayt olduğundan aktarım kesilerek başarısız olması neredeyse imkânsızdır. Tek adımda yapan Tek adımda yükleme ve cover API'si sesin tamamını istek gövdesine koyar, bu yüzden ses yaklaşık 8 MB'ı aştığında aktarım sırasında kolayca kesilir ve
unexpected end of JSON inputdöner (o sayfadaki "Büyük dosyalar ve kesilen istekler" bölümüne bakın).Ayrıca aynı
clip_id, Extend, Replace Section, kanal ayırma ve diğer sonraki işlemler için yeniden kullanılabilir; sesi tekrar yüklemeniz gerekmez.
İstek parametreleri
Headers
| Parametre | Tür | Zorunlu | Notlar |
|---|---|---|---|
| Authorization | string | evet | Bearer YOUR_API_KEY |
| Content-Type | string | evet | application/json |
Gövde parametreleri
| Parametre | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
| model | string | hayır | suno-v6 | Müşteriye dönük model adı: suno-v6, suno-v6-wild veya suno-v6-mini |
| sourceClipId | string | evet | - | Kaynak klip ID'si; kaynak ses yüklemenin döndürdüğü clip_id, elinizdeki bir şarkının gerçek song_id değeri ya da güçlendirilmiş yükleme tamamlandığında dönen gerçek song_id kullanılabilir |
| sourceAudioUrl | string | hayır | - | Kaynak ses URL'si |
| sourceTitle | string | hayır | - | Kaynak ses başlığı |
| prompt | string | hayır | - | Yeni şarkı sözleri veya üretim yönü |
| customMode | boolean | hayır | true | Özel modun kullanılıp kullanılmayacağı |
| style | string | hayır | - | Stil etiketleri |
| title | string | hayır | - | Başlık |
| negativeTags | string | hayır | - | Negatif stil |
| instrumental | boolean | hayır | false | Şarkının enstrümantal olup olmadığı |
| waitAudio | boolean | hayır | false | Sesin tamamlanmasının beklenip beklenmeyeceği |
| vocalGender | string | hayır | - | Vokal cinsiyeti |
| lyricsMode | string | hayır | - | Şarkı sözü modu |
| weirdnessConstraint | number | hayır | - | Rastgelelik |
| styleWeight | number | hayır | - | Stil etkisi |
| audio_weight | number | hayır | - | Referans sese bağımlılık, aralık 0.0-1.0; yalnızca kaynak klip veya referans ses verildiğinde gönderilebilir |
weirdnessConstraint, styleWeight ve audio_weight değerleri 0.0 ile 1.0 arasında oranlı ondalık sayılardır, yüzde tam sayısı değildir; örneğin %50 için 0.5 yazılır. 0 geçerli bir değerdir; yalnızca alanı atlamak "belirtilmedi" anlamına gelir. audio_weight, Suno'nun metadata.control_sliders.audio_weight alanına eşlenir ve sonucun referans sese ne kadar yaslandığını kontrol eder; yalnızca istekte geçerli bir sourceClipId veya referans ses varsa gönderilebilir, bu nedenle normal yalnızca metin üretiminde göndermeyin. customMode=true iken yeni şarkı sözlerini prompt alanına yazın ve style ile title alanlarını birlikte verin; customMode=false iken prompt alanına üretim açıklamasını yazın. instrumental ve waitAudio JSON boolean değerleri olan true/false kullanmalıdır.
Bu uç nokta varsayılan olarak asenkron döner. Dönen status değeri pending iken audio_url alanının boş olması normaldir; ses adresini kullanmadan önce tamamlanmasını bekleyin. sourceClipId gerçek bir kaynak şarkı/klip ID'si olmalıdır; task_id, client_request_id veya pending: yer tutucu ID kullanılamaz.
sourceClipId hangi ID
sourceClipId, bu cover'ın kaynağı olarak kullanılan gerçek Suno klip tanımlayıcısıdır. Platformun müşteriye dönük şarkı nesnesi bu tanımlayıcıyı genellikle song_id olarak adlandırır; cover istek parametreleri ise sourceClipId adını kullanmaya devam eder. Burada ikisi aynı gerçek şarkı ID'sini ifade eder.
Kaynak güçlendirilmiş yükleme ise önce güçlendirilmiş yükleme görevini sorgulayın, status değeri completed olana kadar bekleyin, sonra dönen gerçek song_id değerini sourceClipId alanına koyun. O sonucun audio_url ve title değerlerini de sırasıyla sourceAudioUrl ve sourceTitle alanlarına koymanız önerilir.
Güçlendirilmiş yüklemenin task_id, client_request_id veya pending:enhanced-upload:* yer tutucu ID'sini sourceClipId alanına koymayın.
İstek örneği
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": "Orijinal ses başlığı",
"prompt": "Yeni şarkı sözleri veya üretim yönü",
"customMode": true,
"style": "Mandopop, warm vocal",
"title": "Cover başlığı",
"negativeTags": "noise",
"audio_weight": 0.5,
"instrumental": false,
"waitAudio": false
}'
Yanıt
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "new_clip_id",
"song_title": "Cover başlığı",
"status": "pending"
}
],
"source_update": {}
}
}
Notlar
Bu uç nokta kaynak klibin hangi hesaba ait olduğu sorununu olabildiğince çözer. Kaynak klip doğrudan kullanılamıyorsa sunucu, kaynak ses bilgilerine göre yeniden yükleyip ardından üretebilir.
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