API muat naik audio sumber
Penerangan endpoint
Muat naik audio sumber menukar fail audio setempat atau jauh menjadi klip sumber yang boleh digunakan oleh keupayaan seterusnya: cover, pemanjangan, penggantian bahagian, pemisahan dan lain-lain.
Endpoint: POST /api/music/upload-source
Pengebilan: Percuma. Endpoint ini hanya memuat naik audio sumber; ia tidak memulakan tugasan penjanaan.
Penggunaan yang disyorkan: ini langkah 1 bagi «cover dua langkah». Muat naik audio dahulu dengan endpoint ini (percuma, dan boleh cuba semula bila-bila gagal) dan simpan
clip_idyang dipulangkan; selepas mengesahkan muat naik berjaya (statusdalam keadaan selesai), panggil API cover daripada klip sumber untuk memulakan cover — badan permintaan itu hanya beberapa ratus bait, jadi ia tidak boleh terpotong semasa penghantaran kerana audio terlalu besar. Berbanding API sekali gus muat naik lalu cover, pemisahan ini lebih kukuh apabila audio besar, rangkaian tidak stabil, atau bahan yang sama akan digunakan semula beberapa kali (pemanjangan / penggantian / pemisahan).
Petua untuk muat naik fail besar
| Keadaan | Pendekatan yang disyorkan |
|---|---|
| Audio sudah awam (ada pautan terus https) | Guna file_url: badan permintaan hanya beberapa ratus bait, paling kukuh |
| URL bertandatangan sementara (ByteDance dan lain-lain) | Gunakan file_url hanya jika URL awam dan masih sah; jika tidak, gunakan multipart atau muat naik segera |
| Fail setempat (Node / Python / desktop) | Guna muat naik multipart (-F "file=@source.mp3") dan jangan tetapkan Content-Type secara manual |
| Hanya boleh JSON + base64 | Perhatikan Content-Length mesti bilangan bait (Buffer.byteLength), jika tidak badan boleh terpotong |
Selepas muat naik selesai, sentiasa pastikan status dalam respons sudah berkeadaan selesai dan simpan clip_id sebelum ke langkah 2;
muat naik yang gagal tidak dicaj dan tidak mencipta tugasan penjanaan — cuba semula sahaja.
Semak file_url sebelum memuat naik
Pelayan platform memuat turun
file_urlsendiri, bukan pelayar anda. URL yang boleh dibuka dalam pelayar belum tentu boleh diakses oleh pelayan produksi.
Untuk fail tempatan, gunakan muat naik multipart dengan medan file. Jangan gunakan file_url untuk pautan ByteDance atau URL bertandatangan sementara kecuali URL itu awam dan masih sah semasa permintaan dihantar.
Jalankan ini dari pelayan awam sebelum menghantar permintaan muat naik:
curl -L --max-time 30 -D - -o /dev/null "https://example.com/source.mp3"
Permintaan GET mesti berakhir dengan HTTP 200, mengembalikan MIME audio dan mempunyai data. Halaman log masuk, respons HTML serta 401, 403, 404 atau 410 tidak boleh digunakan oleh pelayan.
file_url download failed: HTTP 404 biasanya bermaksud tandatangan telah tamat, fail dipadam atau parameter URL tidak lengkap.
Muat naik ini percuma. Jika muat turun file_url gagal, tiada clip_id, tugasan lagu atau panggilan penjanaan dibuat dan tiada caj dikenakan; bayaran balik tidak diperlukan.
Parameter permintaan
Headers
Untuk permintaan JSON:
| Parameter | Jenis | Wajib | Nota |
|---|---|---|---|
| Authorization | string | ya | Bearer YOUR_API_KEY |
| Content-Type | string | ya | application/json |
Jangan tetapkan Content-Type secara manual untuk permintaan multipart; klien menjananya secara automatik.
Parameter body
| Parameter | Jenis | Wajib | Lalai | Nota |
|---|---|---|---|---|
| model | string | tidak | suno-v6 | Nama model untuk pelanggan: suno-v6, suno-v6-wild atau suno-v6-mini |
| file_url | string | tidak | - | URL audio jauh |
| file_base64 | string | tidak | - | Audio dalam Base64 |
| file | fail (multipart) | tidak | - | Fail audio untuk dimuat naik; nama medan mesti file |
| file_name | string | tidak | - | Nama fail |
| upload_type | string | tidak | file_upload | Jenis muat naik |
Contoh permintaan 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"
}'
Contoh permintaan 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())
Respons
{
"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": {}
}
Dapatkan kunci API
Cipta kunci API dalam konsol selepas mendaftar. Setiap penjanaan berharga 0.6 ¥ dan mengembalikan 2 lagu, muat turun tanpa had dan nombor telefon tidak diperlukan.
Dapatkan kunci API Kembali ke gambaran