- الإصدار 1 (الوضع الكلاسيكي): يدعم معلمات مثل
duration(10/15/25 ثانية)،orientation(وضع أفقي/عمودي)،size(وضوح صغير/كبير)، صور مرجعيةimage_urls، ورابط الشخصيةcharacter_urlوغيرها. - الإصدار 2 (وضع الشركاء): يدعم معلمات مثل
seconds(4/8/12 ثانية)، دقة بكسليةsize(مثل 1280x720)، صور مرجعيةinput_referenceوغيرها.
عملية التقديم
لاستخدام الواجهة، يجب أولاً التقديم للحصول على الخدمة من خلال صفحة Sora Videos Generation API. بعد الدخول إلى الصفحة، اضغط على زر “Acquire” كما هو موضح في الصورة:
إذا لم تكن مسجلًا أو مسجلاً دخولك، سيتم توجيهك تلقائيًا إلى صفحة تسجيل الدخول والتسجيل، وبعدها تعود تلقائيًا إلى الصفحة الحالية.
عند التقديم لأول مرة، ستحصل على رصيد مجاني لاستخدام الواجهة مجانًا.
الاستخدام الأساسي (الإصدار 1)
أولاً، لفهم طريقة استخدام الإصدار 1 الأساسية، يتم إدخال كلمة مفتاحيةprompt، ومصفوفة روابط الصور المرجعية image_urls، ونموذج model للحصول على النتيجة المعالجة، كما يلي:

accept: نوع الاستجابة المرغوب، هناapplication/jsonأي بصيغة JSON.authorization: مفتاح استدعاء الواجهة، يمكن اختياره من القائمة بعد التقديم.
model: نموذج توليد الفيديو، يدعمsora-2(الوضع القياسي) وsora-2-pro(وضع الوضوح العالي). يدعمsora-2-proمدة 25 ثانية، بينما يدعمsora-2فقط 10 و15 ثانية.size: وضوح الفيديو،smallللوضوح القياسي، وlargeللوضوح العالي (خاص بالإصدار 1 فقط).duration: مدة الفيديو، يدعم 10، 15، 25 ثانية، حيث 25 ثانية فقط لـsora-2-pro(خاص بالإصدار 1).orientation: اتجاه الفيديو، يدعمlandscape(أفقي) وportrait(عمودي) (خاص بالإصدار 1).image_urls: مصفوفة روابط الصور المرجعية لتوليد الفيديو من الصور (خاص بالإصدار 1).character_url: رابط الشخصية، لا يجب أن يحتوي الفيديو على أشخاص حقيقيين (خاص بالإصدار 1).character_start/character_end: أوقات ظهور الشخصية بالثواني، بفارق 1-3 ثوانٍ (خاص بالإصدار 1).prompt: كلمة المفتاح (مطلوبة).callback_url: رابط استدعاء رد الاتصال غير المتزامن.version: إصدار الواجهة،"1.0"(افتراضي) أو"2.0".

success: حالة نجاح مهمة توليد الفيديو.task_id: معرف مهمة توليد الفيديو.trace_id: معرف تتبع المهمة.data: قائمة نتائج مهمة توليد الفيديو.id: معرف الفيديو.video_url: رابط الفيديو الناتج.state: حالة المهمة.
data.
كما يمكن نسخ كود التكامل مباشرة، مثل كود CURL التالي:
مهمة توليد فيديو من صورة (الإصدار 1)
لإجراء مهمة توليد فيديو من صورة، يجب تمرير معلمةimage_urls التي تحتوي على روابط الصور المرجعية، ويمكن تحديد المحتويات التالية:
image_urls: مصفوفة روابط الصور المرجعية المستخدمة في المهمة. يجب عدم تمرير صور لأشخاص حقيقيين لتجنب فشل المهمة.


مهمة توليد فيديو من شخصية (الإصدار 1)
لإجراء مهمة توليد فيديو من شخصية، يجب تمرير معلمةcharacter_url التي تحتوي على رابط فيديو لإنشاء الشخصية، مع ملاحظة عدم وجود أشخاص حقيقيين في الفيديو لتجنب الفشل، ويمكن تحديد المحتويات التالية:
character_url: رابط فيديو لإنشاء الشخصية، يجب ألا يحتوي الفيديو على أشخاص حقيقيين.


وضع الإصدار 2.0
بالإضافة إلى وضع الإصدار 1.0، تدعم الواجهة أيضًا وضع الإصدار 2.0 من خلال تعيين معلمةversion إلى "2.0". يدعم الإصدار 2.0 مدة فيديو أقصر وتحكمًا دقيقًا في الدقة البكسلية.
شرح معلمات الإصدار 2.0
| المعلمة | النوع | إلزامي | الوصف |
|---|---|---|---|
version | string | نعم | تعيين إلى "2.0" |
prompt | string | نعم | كلمة مفتاحية لتوليد الفيديو |
model | string | لا | sora-2 (افتراضي) أو sora-2-pro |
duration | integer | لا | مدة الفيديو: 4 (افتراضي)، 8، 12 ثانية |
size | string | لا | الدقة: 720x1280 (افتراضي)، 1280x720، 1024x1792، 1792x1024 |
image_urls | array | لا | مصفوفة روابط الصور المرجعية، تستخدم الصورة الأولى فقط، يجب أن تتطابق أبعاد الصورة مع معلمة size |
callback_url | string | لا | رابط رد الاتصال غير المتزامن |
مثال أساسي
استخدام الصور المرجعية (الإصدار 2.0)
في وضع الإصدار 2.0، يمكن تمرير معلمةimage_urls لإدخال صورة مرجعية لتوجيه توليد الفيديو (تستخدم الصورة الأولى فقط):
ملاحظة: يجب أن تتطابق أبعاد الصورة المرجعية مع معلمةsize، على سبيل المثال إذا كانتsizeتساوي1280x720، يجب أن تكون أبعاد الصورة 1280×720.
مقارنة معلمات الإصدار 1.0 و 2.0
| المعلمة | الإصدار 1.0 | الإصدار 2.0 |
|---|---|---|
version | 1.0 (افتراضي) | 2.0 |
prompt | ✅ | ✅ |
model | ✅ sora-2 / sora-2-pro | ✅ sora-2 / sora-2-pro |
duration | ✅ 10/15/25 ثانية | ✅ 4/8/12 ثانية |
orientation | ✅ landscape/portrait | ❌ |
size | ✅ small/large | ✅ 720x1280/1280x720/1024x1792/1792x1024 |
image_urls | ✅ عدة صور مرجعية | ✅ تستخدم الصورة الأولى فقط |
character_url | ✅ | ❌ |
callback_url | ✅ | ✅ |
رد الاتصال غير المتزامن (Async Callback)
نظرًا لأن توليد فيديوهات Sora يستغرق وقتًا نسبيًا (حوالي 1-2 دقيقة)، وإذا لم يستجب API لفترة طويلة، سيبقى طلب HTTP مفتوحًا مما يستهلك موارد النظام، لذا توفر الواجهة دعمًا لرد الاتصال غير المتزامن. العملية كالتالي: عند إرسال الطلب، يتم تمرير معلمةcallback_url التي تحدد رابطًا لاستقبال النتيجة. بعد إرسال الطلب، يعيد API فورًا ردًا يحتوي على task_id الذي يمثل معرف المهمة. عند الانتهاء من توليد الفيديو، يتم إرسال النتيجة عبر طلب POST بصيغة JSON إلى رابط callback_url، ويشمل الرد أيضًا task_id لربط النتيجة بالمهمة.
فيما يلي مثال توضيحي.
أولًا، يجب أن يكون Webhook رابطًا يمكنه استقبال طلبات HTTP، ويجب على المطور استخدام URL لخادم HTTP خاص به. لأغراض العرض، يمكن استخدام موقع Webhook عام مثل https://webhook.site/، حيث يمكن الحصول على رابط Webhook كما في الصورة:
انسخ هذا الرابط لاستخدامه كـ Webhook، كمثال: https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa.
بعدها، قم بتعيين معلمة callback_url إلى هذا الرابط، وأدخل المعلمات الأخرى كما في الصورة:

https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa كما في الصورة:
المحتوى كالتالي:
task_id في النتيجة، وباقي الحقول مشابهة لما سبق، مما يمكن من ربط النتيجة بالمهمة.
معالجة الأخطاء
عند استدعاء الواجهة، إذا حدث خطأ، ستعيد الواجهة رمز الخطأ والمعلومات المناسبة، مثل:400 token_mismatched: طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صحيحة.400 api_not_implemented: طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صحيحة.401 invalid_token: غير مصرح، رمز التفويض مفقود أو غير صالح.429 too_many_requests: عدد الطلبات كبير جدًا، تجاوزت الحد المسموح.500 api_error: خطأ داخلي في الخادم.

