गाने की मीडिया डाउनलोड और प्रीव्यू API
एंडपॉइंट विवरण
यह एंडपॉइंट समूह "मीडिया पता लेना" और "फ़ाइल असल में डाउनलोड करना" को अलग करता है:
- ऐसा पता चाहिए जिसे सीधे चलाया या डाउनलोड किया जा सके (जैसे अपने प्लेयर में डालना या ऑब्जेक्ट स्टोरेज में कॉपी करना):
POST /api/music/download-urlया प्रतिक्रिया में पहले से मौजूदGET /api/music/downloadइस्तेमाल करें। - ब्राउज़र फ़ाइल को सीधे डिस्क पर सहेजे:
POST /api/music/download-file(एक फ़ाइल) याPOST /api/music/download-all(पैकेज) इस्तेमाल करें। - गाना अभी बन रहा हो और पहले सुनना हो:
POST /api/music/generation-stream-urlइस्तेमाल करें।
बिलिंग: सब कुछ निःशुल्क। डाउनलोड और प्रीव्यू केवल वही मीडिया पढ़ते हैं जो प्लेटफ़ॉर्म पहले से होस्ट करता है; वे Suno को कॉल नहीं करते और शुल्क नहीं लगता।
सुझाया गया मॉडल: suno-v6। suno-v6, suno-v6-wild और suno-v6-mini उपलब्ध हैं।
प्रमाणीकरण
| पैरामीटर | प्रकार | ज़रूरी | नोट |
|---|---|---|---|
| Authorization | string | हाँ | Bearer YOUR_API_KEY (GET /api/music/download लॉगिन सेशन भी स्वीकार करता है) |
| Content-Type | string | हाँ | application/json |
समर्थित मीडिया प्रकार (kind)
| kind | नोट |
|---|---|
song |
ऑडियो (mp3 इसका उपनाम और डिफ़ॉल्ट है; प्रतिक्रिया में हमेशा song लिखा जाता है) |
wav |
WAV फ़ाइल; पहले WAV जनरेशन/प्राप्ति API से तैयार करें |
video |
वीडियो (mp4 उपनाम है) |
midi |
अलग किए गए स्टेम का MIDI; केवल उन्हीं स्टेम के लिए मान्य जिनका अलगाव पूरा हो चुका है — MIDI प्राप्ति API देखें |
cover |
कवर छवि (image उपनाम है) |
lyrics |
गीत का टेक्स्ट (.txt); केवल download-file / GET /api/music/download से मिलता है — download-url गीत का पता नहीं लौटाता |
timestamped_lyrics |
टाइमस्टैम्प वाली गीत फ़ाइल (.lrc, उपनाम lrc)। फ़िलहाल केवल कुछ गाने समर्थित हैं; success:false लौटने पर टाइमस्टैम्प वाला गीत API से टाइमलाइन लेकर फ़ाइल खुद बनाएँ |
1) मीडिया पता प्राप्त करें
curl -X POST https://www.suno-api.io/api/music/download-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id": "song_id", "kind": "song"}'
{
"code": 200,
"message": "success",
"data": {
"song_id": "song_id",
"kind": "song",
"url": "https://media.suno-api.io/assets/song_id-mp3.mp3",
"nav_url": "https://media.suno-api.io/assets/song_id-mp3.mp3?...&response-content-disposition=attachment..."
}
}
| पैरामीटर | प्रकार | ज़रूरी | नोट |
|---|---|---|---|
| song_id | string | हाँ | अपने गाने की ID |
| kind | string | नहीं | ऊपर की तालिका देखें; डिफ़ॉल्ट song |
| refresh | boolean | नहीं | true भेजने पर संसाधन दोबारा तैयार करने पर बल पड़ता है (जैसे CDN पर फ़ाइल वापस लिए जाने के बाद) |
url चलाने या खुद कॉपी करने के लिए है; nav_url में Content-Disposition: attachment होता है
और यह ब्राउज़र के एड्रेस बार में सीधे चिपकाकर डाउनलोड करने के लिए उपयुक्त है (जब कुछ मोबाइल ब्राउज़र blob डाउनलोड समर्थित न करें)।
⚠️ पते की वैधता: 7 दिन — फ़ाइल समय रहते सहेजें
url/nav_urlप्लेटफ़ॉर्म के ऑब्जेक्ट स्टोरेज की ओर इशारा करते हैं और डिफ़ॉल्ट रूप से 7 दिन बाद समाप्त हो जाते हैं (फ़ाइलें वापस ले ली जाती हैं और पुराना पता 404 लौटाता है)। इन 7 दिनों में उन्हें अपने स्टोरेज में सहेज लें।समाप्त होने के बाद गाना दोबारा बनाने की ज़रूरत नहीं:
POST /api/music/download-urlदोबारा कॉल करें (याrefresh: trueभेजें) और उस गाने के नए वैध पते पाएँ। यह एंडपॉइंट समूह निःशुल्क है और कोई अतिरिक्त शुल्क नहीं जोड़ता।
2) एक फ़ाइल सीधे डाउनलोड करें
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id": "song_id", "kind": "song"}' \
-o song.mp3
प्रतिक्रिया बॉडी एक फ़ाइल स्ट्रीम है (JSON नहीं) और Content-Disposition में फ़ाइल नाम पहले से है।
गीत और टाइमस्टैम्प वाला गीत केवल इसी एंडपॉइंट से मिलते हैं (download-url केवल मीडिया पते लौटाता है, गीत नहीं)।
.lrc फ़ाइल फ़िलहाल केवल कुछ गानों के लिए समर्थित है; यदि success:false लौटे तो अगले भाग में बताए अनुसार
टाइमस्टैम्प वाला गीत API से .lrc खुद बनाएँ, दोबारा कोशिश न करें।
टाइमस्टैम्प वाला गीत (.lrc) कैसे लें
दो चरण सुझाए जाते हैं, जो किसी भी गाने पर लागू होते हैं:
चरण 1: शब्द-दर-शब्द टाइमलाइन लें (निःशुल्क)
curl -X POST https://www.suno-api.io/api/lyrics/timeline \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "suno-v6", "song_id": "song_id"}'
नतीजा सीधे एक ऐरे है (कोई data रैपर नहीं); हर तत्व इस रूप का है:
{"word": "…", "start_s": 1.117, "end_s": 8.138, "success": true, "p_align": 0.99}।
word में पहले से नई पंक्तियाँ हैं, इसलिए इसे पंक्ति-वार तोड़ा जा सकता है; फ़ील्ड के अर्थ, वाद्य अंशों को छानने और अन्य सावधानियों के लिए
टाइमस्टैम्प वाला गीत API के "फ़ील्ड" और "उपयोग संबंधी नोट" देखें।
चरण 2: start_s से .lrc खुद जोड़ें (समय प्रारूप [mm:ss.cc])
def to_lrc(segments):
lines = []
for seg in segments:
text = seg["word"].strip()
if not text:
continue
start = max(0.0, float(seg["start_s"]))
cs = int(start * 100 + 0.5)
lines.append(f"[{cs // 6000:02d}:{(cs % 6000) // 100:02d}.{cs % 100:02d}]{text}")
return "\n".join(lines)
GET /api/music/download?song_id=<id>&kind=lrc भी सर्वर के बनाए .lrc को सीधे डाउनलोड करता है,
लेकिन फ़िलहाल केवल कुछ गाने समर्थित हैं: यदि success:false लौटे तो ऊपर बताए तरीके से खुद बनाएँ —
दोबारा कोशिश की ज़रूरत नहीं और बिलिंग पर असर नहीं।
3) पैकेज डाउनलोड
curl -X POST https://www.suno-api.io/api/music/download-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_ids": ["song_id_1", "song_id_2"]}' \
-o songs.zip
song_id (एक) या song_ids (बैच, अधिकतम 50 प्रविष्टियाँ) में से एक इस्तेमाल करें। प्रतिक्रिया बॉडी ZIP स्ट्रीम है।
4) स्थिर डाउनलोड पता
GET /api/music/download?song_id=<id>&kind=<kind> गाने की प्रतिक्रियाओं में सीधे दिया गया डाउनलोड प्रवेश-बिंदु है।
यह API कुंजी और लॉगिन सेशन दोनों स्वीकार करता है, download-file जैसा ही व्यवहार करता है, और क्लाइंट या तीसरे पक्ष के प्लेयर में स्थायी रूप से डालने के लिए उपयुक्त है।
5) जनरेशन के दौरान प्रीव्यू
curl -X POST https://www.suno-api.io/api/music/generation-stream-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_ids": ["song_id_1", "song_id_2"]}'
{
"code": 200,
"message": "success",
"data": {
"items": [
{
"song_id": "song_id_1",
"url": "https://media.suno-api.io/assets/song_id_1-mp3.mp3",
"expires_at": 0,
"content_type": "audio/mpeg",
"playable_until_completed": false,
"mode": "mp3",
"ranges": true
}
]
}
}
| पैरामीटर | प्रकार | ज़रूरी | नोट |
|---|---|---|---|
| song_id | string | नहीं | एक गाने की ID |
| song_ids | string[] | नहीं | बैच, अधिकतम 24 प्रविष्टियाँ (एक स्वचालित अलगाव बैच में स्टेम की अधिकतम संख्या) |
playable_until_completed का true होना बताता है कि यह बन रहे गाने का अस्थायी प्रीव्यू पता है; गाना पूरा होने पर स्थायी पते पर चले जाएँ।
यदि कोई एक गाना विफल हो तो उस प्रविष्टि में error फ़ील्ड आता है और बाकी गाने सामान्य रूप से लौटते हैं।
नोट
- सभी एंडपॉइंट केवल प्लेटफ़ॉर्म द्वारा होस्ट किए गए मीडिया पते लौटाते हैं; वे कभी Suno का एन्क्रिप्टेड स्रोत या अस्थायी हस्ताक्षरित पता नहीं लौटाते।
- पते स्थायी नहीं हैं — लंबे समय तक रखना हो तो फ़ाइलें खुद कॉपी करें; डिस्क पर मूल फ़ाइल चाहिए तो
download-fileइस्तेमाल करें। - किसी स्टेम का MIDI उस स्टेम का अलगाव पूरा होने पर ही मिलता है, वरना त्रुटि लौटती है।
API कुंजी प्राप्त करें
रजिस्टर करने के बाद कंसोल में API कुंजी बनाएँ। प्रत्येक जनरेशन का खर्च 0.6 युआन है और 2 ट्रैक मिलते हैं, डाउनलोड असीमित हैं और फ़ोन नंबर की ज़रूरत नहीं है।
API कुंजी लें अवलोकन पर लौटें