واجهة الفصل (الغناء والموسيقى المصاحبة)

آخر تحديث 2026-09-18 · فريق Suno-API

وصف نقطة النهاية

يُستخدم الفصل لتقسيم أغنية موجودة إلى غناء أو موسيقى مصاحبة أو نتائج متعددة المسارات. التسلسل الموصى به للربط:

  1. إذا لم يكن الصوت المصدر أغنية مولّدة على هذه المنصة، فاستدعِ أولاً واجهة رفع الصوت المصدر.
  2. استدعِ POST /api/music/separate لإرسال مهمة الفصل.
  3. استعلم عن النتيجة عبر واجهة استعلام الأغاني والسجل.
  4. استخدم واجهات التنزيل لتنزيل ملف صوت كل نتيجة فصل.

نقطة النهاية: POST /api/music/separate

الفوترة: مدفوع. stem_mode=two حالياً 0.6 يوان افتراضياً لكل طلب؛ أما stem_mode=twelve فهو فصل متعدد المسارات وحالياً 3.0 يوان افتراضياً لكل طلب. والمبلغ المخصوم فعلاً يتبع إعداد الأسعار في لوحة الإدارة.

أوقات الانتظار والمهلات (مهم): هذه نقطة نهاية متزامنة — لا يُقبل الطلب ويُسلَّم إلى التوليد إلا عند وصول الاستجابة. ووفق القياس، تعود معظم الطلبات في 1-3 ثوانٍ، ونحو 10% تتجاوز 30 ثانية، وأطولها نحو 230 ثانية. اضبط مهلة العميل على 300 ثانية أو أكثر؛ وعدم وصول استجابة لا يعني عدم التوليد، ولا تُعد المحاولة فوراً بعد انتهاء المهلة (فذلك يكرر الطلب ويخصم مرة أخرى). وإن انقطع الاتصال فتحقق لاحقاً عبر GET /api/music/songs. راجع «أوقات الانتظار وإعدادات المهلة» في نظرة عامة على الواجهة الجديدة.

المصادقة

المعامل النوع مطلوب ملاحظات
Authorization string نعم Bearer YOUR_API_KEY
Content-Type string نعم application/json

معاملات الطلب

المعامل النوع مطلوب القيمة الافتراضية ملاحظات
song_id string نعم - معرّف الأغنية المصدر المطلوب فصلها
stem_mode string نعم - وضع الفصل: two أو twelve
source_audio_url string لا - رابط الصوت المصدر
source_file_name string لا - اسم ملف الصوت المصدر
source_title string لا - عنوان الأغنية المصدر

شرح stem_mode

القيمة عدد العناصر المُعادة ملاحظات
two 4 فصل على مسارين: غناء + موسيقى مصاحبة. الطلب الواحد يُنتج نسختين × مسارين
twelve 24 فصل متعدد المسارات: نسختان × 12 مساراً؛ أسماء المسارات في الجدول أدناه

شرح الفصل

الفصل قدرة ثابتة مستقلة، ولا يلزم إدخال أو اختيار نموذج لتوليد الأغاني. يرسل العميل الأغنية المصدر وstem_mode فقط؛ ويتولى الخادم المعالجة حسب الوضع.

من أين تأتي الأعداد: الطلب الواحد يُنتج نسختين (نتيجتان من المادة نفسها)، لذا العدد = 2 × عدد مسارات ذلك الوضع: 4 في two و24 في twelve. اعتمد دائماً على الطول الفعلي لمصفوفة clips في الاستجابة، ولا تكتب حلقة بعدد ثابت (فقد يفشل بعض المسارات وتُعاد المسارات الناجحة كالمعتاد).

ما المسارات التي يعيدها كل وضع

مسارات وضع twelve الاثنا عشر (الأسماء تمنحها المنصة بشكل ثابت، وقد يتغيّر الترتيب):

# عنوان المسار ملاحظات
1 (Vocals) الغناء الرئيسي
2 (Backing Vocals) الهارموني / الغناء الخلفي
3 (Drums) الطبول
4 (Bass) الباس
5 (Guitar) الجيتار
6 (Keyboard) لوحات المفاتيح / البيانو
7 (Percussion) الإيقاعات
8 (Strings) الآلات الوترية
9 (Synth) السينث
10 (FX) المؤثرات / الأجواء
11 (Brass) النحاسيات
12 (Woodwinds) الآلات النفخية الخشبية

وضع two يعيد مسارين هما (Vocals) و(Instrumental)، لكل منهما نسختان. عناوين المسارات في two وtwelve هي أسماء ثابتة (لا تحمل اسم الأغنية المصدر)، فلا تتوقع أن تعرف من العنوان أي أغنية هي.

لا يمكن استخدام عناوين المسارات كمفتاح فريد. في النسختين تظهر مسارات بالاسم نفسه (مثل مسارَي (Vocals) ومسارَي (Strings))، كما أن عملية الفصل الواحدة تعيد مسارات كثيرة. استخدم دائماً song_id كمعرّف، وsong_title للعرض فقط؛ ولا تستخدم فهارس المصفوفة أيضاً (فالترتيب قد يتغيّر).

أمثلة الطلب

فصل الغناء / الموسيقى المصاحبة (stem_mode: "two")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "two",
    "source_audio_url": "https://example.com/source.mp3",
    "source_file_name": "source.mp3",
    "source_title": "Source Song"
  }'

الفصل متعدد المسارات (stem_mode: "twelve")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "twelve",
    "source_audio_url": "https://example.com/source.mp3"
  }'

الاستجابة

عند النجاح تُعاد عادةً مصفوفة نتائج الفصل. وكل نتيجة مقطع أغنية مستقل، ويلزم الاستعلام عنها حتى تصبح status في حالة الاكتمال.

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "stem_clip_id_1",
        "song_title": "(Vocals)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      },
      {
        "song_id": "stem_clip_id_2",
        "song_title": "(Instrumental)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      }
    ]
  }
}

ما سبق يعرض عنصرين فقط من 4 في وضع two؛ أما فعلياً فتُعاد 4 عناصر (نسختان × {(Vocals), (Instrumental)})؛ ويعيد وضع twelve أربعة وعشرين عنصراً. والعدد الحقيقي هو طول مصفوفة clips.

عادةً لا يحتاج العميل إلا إلى حفظ clips[].song_id؛ فالاستعلام والتنزيل لاحقاً يدوران حول هذه المعرّفات.

ملاحظات

الاستعلام عن نتائج الفصل

بعد نجاح الطلب، استخدم clips[].song_id لاستدعاء POST /api/music/query للاستعلام عن النتيجة.

curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": "stem_clip_id_1,stem_clip_id_2"
  }'

مثال استعلام مكتمل:

[
  {
    "song_id": "stem_clip_id_1",
    "song_title": "(Vocals)",
    "status": "complete",
    "audio_url": "https://...",
    "cover_url": "https://...",
    "duration": 180.5,
    "generation_type": "separate",
    "stem_from_id": "source_clip_id"
  }
]

تنزيل ملفات المسارات

بعد اكتمال نتيجة الفصل يمكنك تنزيل ملف مسار واحد عبر واجهة التنزيل.

نقطة النهاية: POST /api/music/download-file

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": "stem_clip_id_1",
    "kind": "audio"
  }' \
  --output stem.mp3

قيم kind المدعومة:

kind ملاحظات
audio / song / music تنزيل صوت MP3
cover / image تنزيل صورة الغلاف
wav تنزيل صوت WAV
video / mp4 تنزيل الفيديو

ولتنزيل موارد نتيجة فصل واحدة في حزمة واحدة، استدعِ:

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_id": "stem_clip_id_1"
  }' \
  --output stem-resources.zip

شرح الحالات

الحالة ملاحظات
pending تم الإرسال، في انتظار المعالجة
queued في قائمة الانتظار
generating / processing قيد المعالجة
complete / completed مكتمل
error / failed فشل؛ راجع error_message

أخطاء شائعة

حالة HTTP ملاحظات الإجراء المقترح
400 خطأ في المعاملات، مثل غياب song_id أو stem_mode راجع معاملات الطلب
401 مفتاح API غير صالح أو غير مُرسل راجع Authorization
402 الرصيد غير كافٍ اشحن الرصيد ثم أعد المحاولة
409 الأغنية المصدر غير قابلة للمعالجة مؤقتاً راجع song_id أو أعد المحاولة لاحقاً
500/503 خلل مؤقت في الخدمة أو المنصة أعد المحاولة لاحقاً أو تواصل مع الدعم الفني

ملاحظات التوافق

استخدمت الوثائق الأقدم أمثلة بكائن واحد مثل success/task_id/vocals_url/instrumental_url. أما الفصل الحالي فيعتمد على مصفوفة الأغاني clips[]: لكل نتيجة فصل song_id خاص بها، والاستعلام والتنزيل لاحقاً يدوران حول هذه المعرّفات.

واجهات ذات صلة

التاليواجهة إزالة الغناء

احصل على مفتاح API

أنشئ مفتاح API من لوحة التحكم بعد التسجيل. كل عملية توليد تكلف 0.6 يوان وتعيد مقطوعتين، والتنزيلات غير محدودة، ولا حاجة إلى رقم هاتف.

احصل على مفتاح API العودة إلى النظرة العامة