स्रोत ऑडियो अपलोड API
एंडपॉइंट विवरण
स्रोत ऑडियो अपलोड करना किसी स्थानीय या दूरस्थ ऑडियो फ़ाइल को ऐसे स्रोत क्लिप में बदलता है जिसे आगे की क्षमताएँ इस्तेमाल कर सकती हैं: कवर, बढ़ाना, अनुभाग बदलना, अलग करना और अन्य।
एंडपॉइंट: POST /api/music/upload-source
बिलिंग: निःशुल्क। यह एंडपॉइंट केवल स्रोत ऑडियो अपलोड करता है; यह जनरेशन कार्य शुरू नहीं करता।
सुझाया गया उपयोग: यह «दो-चरणीय कवर» का चरण 1 है। पहले इस एंडपॉइंट से ऑडियो अपलोड करें (निःशुल्क, और विफल होने पर आप कभी भी दोबारा कोशिश कर सकते हैं) और मिला हुआ
clip_idसहेजें; अपलोड सफल होने की पुष्टि करने के बाद (statusपूर्ण स्थिति में), कवर शुरू करने के लिए स्रोत क्लिप से कवर API कॉल करें — उस चरण का अनुरोध बॉडी केवल कुछ सौ बाइट्स का होता है, इसलिए ऑडियो बड़ा होने के कारण वह ट्रांज़िट में कट नहीं सकता। एक-बार वाले अपलोड करके कवर API की तुलना में यह विभाजन तब ज़्यादा भरोसेमंद है जब ऑडियो बड़ा हो, नेटवर्क अस्थिर हो, या वही सामग्री कई बार दोबारा इस्तेमाल करनी हो (बढ़ाना / बदलना / अलग करना)।
बड़ी फ़ाइल अपलोड के सुझाव
| स्थिति | सुझाया गया तरीका |
|---|---|
| ऑडियो पहले से सार्वजनिक है (https डायरेक्ट लिंक है) | file_url इस्तेमाल करें: अनुरोध बॉडी केवल कुछ सौ बाइट्स, सबसे भरोसेमंद |
| अस्थायी signed URL (ByteDance आदि) | file_url केवल तब उपयोग करें जब URL सार्वजनिक और अभी वैध हो; अन्यथा multipart या तुरंत अपलोड करें |
| स्थानीय फ़ाइल (Node / Python / डेस्कटॉप) | multipart अपलोड करें (-F "file=@source.mp3") और Content-Type हाथ से सेट न करें |
| केवल JSON + base64 संभव है | ध्यान दें: Content-Length बाइट संख्या होनी चाहिए (Buffer.byteLength), वरना बॉडी कट सकती है |
अपलोड पूरा होने के बाद हमेशा पुष्टि करें कि जवाब में status पहले से पूर्ण स्थिति में है और चरण 2 पर जाने से पहले clip_id सहेजें;
विफल अपलोड का शुल्क नहीं लगता और कोई जनरेशन कार्य नहीं बनता — बस दोबारा कोशिश करें।
अपलोड से पहले file_url जाँचें
file_urlहमारा प्लेटफ़ॉर्म सर्वर स्वयं HTTP से डाउनलोड करता है, आपका ब्राउज़र नहीं। ब्राउज़र में URL खुलना यह साबित नहीं करता कि प्रोडक्शन सर्वर भी उसे खोल सकता है।
स्थानीय फ़ाइल के लिए file फ़ील्ड के साथ multipart अपलोड इस्तेमाल करें। ByteDance या अन्य अस्थायी signed URL के लिए file_url तभी इस्तेमाल करें जब वह सार्वजनिक रूप से उपलब्ध हो और अनुरोध भेजते समय वैध हो।
अपलोड अनुरोध भेजने से पहले किसी सार्वजनिक सर्वर से यह चलाएँ:
curl -L --max-time 30 -D - -o /dev/null "https://example.com/source.mp3"
GET अनुरोध का अंत HTTP 200 पर होना चाहिए, MIME प्रकार audio होना चाहिए और डेटा खाली नहीं होना चाहिए। लॉगिन पेज, HTML प्रतिक्रिया और 401, 403, 404 या 410 सर्वर के लिए उपयोगी नहीं हैं।
file_url download failed: HTTP 404 का अर्थ आम तौर पर signature समाप्त होना, फ़ाइल हटाया जाना या URL parameters अधूरे होना है।
यह अपलोड मुफ़्त है। file_url डाउनलोड विफल होने पर clip_id, गाने का task या generation call नहीं बनता और शुल्क नहीं कटता; इसलिए refund की आवश्यकता नहीं है।
अनुरोध पैरामीटर
Headers
JSON अनुरोधों के लिए:
| पैरामीटर | प्रकार | ज़रूरी | नोट |
|---|---|---|---|
| Authorization | string | हाँ | Bearer YOUR_API_KEY |
| Content-Type | string | हाँ | application/json |
multipart अनुरोधों में Content-Type हाथ से सेट न करें; क्लाइंट इसे अपने आप बनाता है।
बॉडी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | डिफ़ॉल्ट | नोट |
|---|---|---|---|---|
| model | string | नहीं | suno-v6 | ग्राहक के लिए मॉडल नाम: suno-v6, suno-v6-wild या suno-v6-mini |
| file_url | string | नहीं | - | दूरस्थ ऑडियो का URL |
| file_base64 | string | नहीं | - | Base64 ऑडियो |
| file | फ़ाइल (multipart) | नहीं | - | अपलोड करने वाली ऑडियो फ़ाइल; फ़ील्ड का नाम file होना चाहिए |
| file_name | string | नहीं | - | फ़ाइल का नाम |
| upload_type | string | नहीं | file_upload | अपलोड प्रकार |
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"
}'
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())
प्रतिक्रिया
{
"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 कुंजी प्राप्त करें
रजिस्टर करने के बाद कंसोल में API कुंजी बनाएँ। प्रत्येक जनरेशन का खर्च 0.6 युआन है और 2 ट्रैक मिलते हैं, डाउनलोड असीमित हैं और फ़ोन नंबर की ज़रूरत नहीं है।
API कुंजी लें अवलोकन पर लौटें