إرسال مهمة توليد فيديو
ينشئ مهمة توليد فيديو غير متزامنة ويعيد task_id فورًا (HTTP 202). استعلم عبر GET /api/v1/videos/generations/{task_id} حتى تنجح المهمة. يمكن تقديم جسم الطلب إما مسطّحًا ({model, prompt, ...}) أو متداخلًا ({model, input: {prompt, ...}})؛ ويُرجَّح كائن input عند وجوده. تُتجاهل حقول callback (callBackUrl / callback_url / callbackUrl).
ثلاثة أنماط إدخال متعارضة حصريًا:
- تحويل النص إلى فيديو: prompt فقط؛
- تحويل الصورة إلى فيديو (الإطار الأول/الأخير): first_frame_url (+ last_frame_url اختياري)؛
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. خلط الإطار الأول/الأخير مع أي إدخال مرجعي متعدد الوسائط يعيد 400 invalid_request_error.
- النوع: stringX
- Request - Id معرّف طلب اختياري من المستدعي يُعاد في الاستجابة لأغراض التشخيص.
- النوع: stringX
- Felo - Channel رموز قنوات عامة مرتبة ومفصولة بفواصل. احذف هذه الترويسة لاستخدام default؛ ويجب استخدام default وحده. في وضع المحفظة، يفحص default ترتيب القنوات العامة الفعلية للنموذج بترتيب عكسي، ويتخطى القنوات غير المنشورة أو غير المتاحة، ويختار مزوّد أول قناة متاحة. ويشمل نقاط النهاية المتاحة من ذلك المزوّد ذات معرّف النموذج الأعلى ومستوى الخدمة نفسيهما. تُتحقق القنوات الصريحة بالترتيب الذي يحدده العميل؛ ولا تُقدَّم سوى مجموعة مزوّد القناة الأولى. لا يوجد رجوع تلقائي إلى مزوّدين آخرين. لا يمكن لترويسات المزوّد القديمة تجاوز توجيه القنوات.
إدخال توليد الفيديو. إما مسطّح ({model, prompt, ...}) أو متداخل ({model, input: {...}}). يُرجَّح input. يجب استخدام نمط إدخال واحد بالضبط؛ ويُرفض خلط الإطار الأول/الأخير مع مدخلات مرجعية متعددة الوسائط.
- النوع: stringmodelمطلوب
اسم النموذج الظاهر في Felo، مثل seedance-2.0-mini.
- النوع: string تعدادaspect
_ratio القيم- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- النوع: integerdurationالحد الأدنى:4الحد الأقصى:15
Integer numbers.
- النوع: string التنسيق: urifirst
_frame _url - النوع: booleangenerate
_audio - النوع: objectinput
كائن إدخال متداخل اختياري؛ عند وجوده، تُرجَّح حقوله على الحقول المجاورة.
- aspectالنوع: string تعداد
_ratio نسبة أبعاد الإخراج؛ يتبع adaptive نسبة الصورة المدخلة.
القيم- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- durationالنوع: integerالحد الأدنى:4الحد الأقصى:15
مدة الإخراج بالثواني.
- firstالنوع: string التنسيق: uri
_frame _url عنوان URL لصورة الإطار الأول (نمط تحويل الصورة إلى فيديو).
- generateالنوع: boolean
_audio هل يتم توليد مسار صوتي متزامن.
- lastالنوع: string التنسيق: uri
_frame _url عنوان URL لصورة الإطار الأخير؛ يجب استخدامه مع first_frame_url.
- promptالنوع: stringأقصى طول:2000
حقل prompt. مطلوب في نمطي تحويل النص إلى فيديو وomni-reference.
- referenceالنوع: array string[] …3التنسيق: uri
_audio _urls مقاطع صوت omni-reference.
- referenceالنوع: array string[] …9التنسيق: uri
_image _urls صور omni-reference. متعارضة حصريًا مع الإطار الأول/الأخير.
- referenceالنوع: array string[] …3التنسيق: uri
_video _urls فيديوهات omni-reference. متعارضة حصريًا مع الإطار الأول/الأخير. يؤدي توفير فيديو إلى تغيير سعر وحدة الفوترة وإضافة مدة الإدخال إلى عدد الرموز.
- resolutionالنوع: string تعداد
دقة الإخراج. تستهلك الدقة الأعلى رموزًا أكثر وتكلّف أكثر.
القيم- 480p
- 720p
- 1080p
- 4k
- serviceالنوع: string | null
_tier لا يُدعم حاليًا سوى default (standard). عند الحذف أو null أو الأسماء البديلة أو السلاسل غير المدعومة، يحدث رجوع إلى default؛ وتعيد الأنواع الأخرى HTTP 400. تبقى القنوات والأسعار المُهيَّأة دون تغيير. ترسل واجهات API النصية القيمة القياسية للمزوّد؛ وتحذف واجهات Decisions والتوليد حقل المنبع.
- النوع: string التنسيق: urilast
_frame _url - النوع: stringpromptأقصى طول:2000
- النوع: array string[] …3التنسيق: urireference
_audio _urls - النوع: array string[] …9التنسيق: urireference
_image _urls - النوع: array string[] …3التنسيق: urireference
_video _urls - النوع: string تعدادresolutionالقيم
- 480p
- 720p
- 1080p
- 4k
- النوع: string | nullservice
_tier لا يُدعم حاليًا سوى default (standard). عند الحذف أو null أو الأسماء البديلة أو السلاسل غير المدعومة، يحدث رجوع إلى default؛ وتعيد الأنواع الأخرى HTTP 400. تبقى القنوات والأسعار المُهيَّأة دون تغيير. ترسل واجهات API النصية القيمة القياسية للمزوّد؛ وتحذف واجهات Decisions والتوليد حقل المنبع.
- النوع: object · VideoGenerationAccepted202
تم قبول المهمة
- تعدادkindثابت:videoمطلوبالقيم
- video
- النوع: array string[]outputsمطلوب
فارغ حتى تنجح المهمة.
- تعدادstatusثابت:queuedمطلوبالقيم
- queued
- النوع: stringtask
_id مطلوبمعرّف المهمة لاستخدامه في الاستعلام.
application/json - النوع: object · GenerationError400
طلب غير صالح (نموذج غير معروف، أنماط إدخال مختلطة، حقول غير صالحة)
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json - النوع: object · GenerationError401
مفتاح API من Felo غير صالح أو مفقود
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json - النوع: object · GenerationError402
الرصيد غير كافٍ / متطلب الفوترة غير مستوفٍ
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json - النوع: object · GenerationError403
الحساب غير مصرّح له (يلزم اشتراك أو المستخدم محظور). تُرفض النماذج المعطّلة قبل استدعاءات المنبع أيضًا. تظل الطلبات والمهام المقبولة قائمة.
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json - النوع: object · GenerationError429
تم بلوغ حد الطلبات أو حد الإنفاق
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json - النوع: object · GenerationError502
فشل مزوّد المنبع
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json - النوع: object · GenerationError503
خدمة التوليد أو خدمة الفوترة غير متاحة مؤقتًا
مغلّف أخطاء متوافق مع OpenAI.
- النوع: objecterror
- messageالنوع: stringمطلوب
- typeالنوع: string تعدادمطلوبالقيم
- invalid
_request _error - server
_error
- codeالنوع: string
- paramالنوع: string يقبل null
application/json
curl https://openapi.felo.ai/api/v1/videos/generations \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"model": "seedance-2.0-mini",
"prompt": "a cinematic trailer shot, 720p",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
{
"task_id": "string",
"status": "queued",
"kind": "video",
"outputs": [
"string"
]
}