الانتقال إلى المحتوى الرئيسي
توليد الموسيقى غير متزامن. POST /v1/music/generations ينشئ مهمة TokenLab عامة ويعيد id / task_id، status، وعادةً poll_url. يجب على تطبيقك تخزين هوية تلك المهمة، عرض التقدم، والاستطلاع حتى الوصول إلى حالة نهائية.

اختر سير العمل

سير العملالحقول الرئيسيةملاحظات
أغنية كاملة أو موسيقى تصويريةmodel, prompt, title اختياري، tags, action: "MUSIC"استخدم عندما يتوقع المستخدم صوتًا نهائيًا
كلمات فقطmodel, prompt, action: "LYRICS"استخدم فقط مع النماذج التي تعرض توليد الكلمات
متابعة مقطع موجودcontinue_clip_id, continue_at اختياريقم بتخزين هوية المقطع/المهمة العامة السابقة قبل تقديم المتابعة
استعلم عن كتالوج النموذج الحالي قبل شحن قائمة نماذج مشفرة:
curl "https://api.tokenlab.sh/v1/models?recommended_for=music" \
  -H "Authorization: Bearer sk-your-api-key"
تستخدم الأمثلة العامة الحالية suno_music لتوليد الموسيقى. بالنسبة لتدفقات الكلمات فقط، أرسل action: "LYRICS" مع نموذج وثائقه العامة توثق توليد الكلمات. اعتبر معرفات النماذج كمعرفات TokenLab العامة، وليس كضمان أن الحقول الخاصة بالمزود هي حقول عقد عامة.

إنشاء مهمة موسيقية

curl https://api.tokenlab.sh/v1/music/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno_music",
    "prompt": "مقطوعة موسيقية مبهجة من نوع الساينث بوب مع أصوات دافئة وكورس نظيف",
    "title": "صوت الصباح",
    "tags": "ساينث بوب، مبهج",
    "action": "MUSIC"
  }'
احتفظ بالمطالبات، العناوين، والوسوم مرئية للمستخدم وآمنة للتخزين. لا تضع مفاتيح API، روابط خاصة، أو معلومات توجيه داخلية في أي حقل من حقول المطالبات.

الاستطلاع من أجل الاكتمال

استخدم poll_url أولاً. إذا كان عميلك يحتاج إلى مسار ثابت، اتصل بـ GET /v1/tasks/{id} مع id أو task_id المعاد.
curl "https://api.tokenlab.sh/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer sk-your-api-key"
الحالات العامة المتوقعة هي pending، processing، completed، وfailed. يمكن أن تتضمن مهمة الموسيقى المكتملة audio_url، video_url، title، lyrics، وبيانات وصفية موحدة. قم بتخزين الروابط النهائية في قاعدة بياناتك الخاصة حتى يتمكن المستخدم من إعادة فتح النتيجة دون إعادة بدء التوليد.

واجهة المستخدم ومعالجة الحالة

  • عرض حالة الانتظار مباشرة بعد إنشاء المهمة.
  • الاستطلاع كل 5-10s للمهام الطويلة، ثم التوقف عند completed أو failed.
  • لا تعرض مشغلًا نهائيًا حتى تكون المهمة completed ويوجد audio_url.
  • بالنسبة لمهام الكلمات فقط، قم بعرض مخرجات النص بشكل منفصل عن مهام الصوت حتى يفهم المستخدمون ما يشترونه.
  • عند التحديث، استأنف من task_id المخزنة بدلاً من إنشاء مهمة جديدة.

الفوترة والتسوية

يمكن لمهام الموسيقى حجز مبلغ تقديري عند الإنشاء والتسوية بعد معرفة الحالة النهائية. قم بتخزين request_id، task_id، النموذج، نقطة النهاية، وbilling_transaction_id عند ظهوره. استخدم سجلات استخدام واجهة إدارة API للتسوية بدلاً من معرفات مهام المزود.

الأخطاء الشائعة

العرضالسبب المحتملالحل
تم إنشاء المهمة ولكن لا يوجد مشغلالمهمة لا تزال في حالة انتظار أو اكتملت بدون audio_urlاستمر في الاستطلاع حتى الوصول إلى الحالة النهائية، ثم تعامل مع المخرجات المفقودة كوظيفة مستخدم فاشلة
أغاني مكررة بعد التحديثأعادت واجهة المستخدم إنشاء المهمة بدلاً من الاستئنافاحتفظ وكرر استخدام task_id
مهمة الكلمات لا تعيد صوتًاaction: "LYRICS" هو نص فقطفصل مسارات واجهة المستخدم للكلمات والموسيقى
معلمة غير مدعومةالحقل غير موجود في عقد النموذج العامإزالة الحقول الخاصة بالمزود أو اختيار نموذج يوثقها

مرجع API

الموضوعالمرجع
إنشاء موسيقىإنشاء موسيقى
الحصول على حالة الموسيقىالحصول على حالة الموسيقى
الحصول على حالة المهمةالحصول على حالة المهمة
قائمة النماذجقائمة النماذج
الفوترة والتسعيرالفوترة والتسعير