KozeKoze
العودة إلى المدونة
درس تعليمي2026年6月28日·管理员

وثائق استدعاء واجهة برمجة تطبيقات إنشاء الفيديو

يوفر Kozeai واجهة لإنشاء الفيديو متوافقة مع OpenAI Sora، باستخدام وضع المهمة غير المتزامن: أولاً، قم بإرسال المهمة للحصول على `task_id`، ثم استطلع حالة المهمة، وقم بتنزيل محتوى الفيديو عند اكتمالها.

وثائق استدعاء واجهة برمجة تطبيقات إنشاء الفيديو

توفر kozeai واجهة لإنشاء الفيديو متوافقة مع OpenAI Sora، باستخدام وضع **المهام غير المتزامنة**: يتم أولاً إرسال المهمة للحصول على `task_id`، ثم يتم التحقق من حالة المهمة، وتنزيل محتوى الفيديو عند اكتمالها.

المصادقة

يتم التحقق من جميع الطلبات باستخدام `Authorization: Bearer `. استخدم هذا بعد إنشاء رمز API في وحدة التحكم.

export KOZEAI_API_KEY="sk-your-token"
export KOZEAI_BASE_URL="https://api.kozeai.com"

الواجهة نظرة عامة

mp4
الطريقة المسار الغرض
POST /v1/videos/generations إنشاء مهمة فيديو
GET /v1/videos/{task_id} استعلام عن المهمة الحالة
استرجاع /v1/videos/{task_id}/content تشغيل عبر الإنترنت أو تنزيل

معرف المهمة، بالشكل task_12345، الذي تُرجعه واجهة الإرسال، خاص بالمستخدم الحالي فقط.


1. إنشاء مهمة فيديو

curl "$KOZEAI_BASE_URL/v1/videos/generations" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-H "Content-Type: application/json" \

-d '{

"model": "video-ds-2.0",

"prompt": "فيديو سينمائي مدته 9:16 لقطة تركض تحت أشعة الشمس الدافئة",

"seconds": 15,

"aspect_ratio": "9:16"

}'

معلمات الطلب

المعلمات النوع مطلوب الوصف
model string نعم اسم نموذج الفيديو، مثل video-ds-2.0
prompt string نعم وصف محتوى الفيديو
ثواني عدد صحيح لا مدة الفيديو (بالثواني)، بناءً على نطاق دعم النموذج الأساسي
نسبة العرض إلى الارتفاع نص لا نسبة العرض إلى الارتفاع، شائعة الاستخدام 9:16، 16:9، 1:1
صور مصفوفة لا رابط الصورة المرجعية أو base64
videos array No Reference Video URL
audios array No Reference Audio URL

قد تدعم نماذج المصدر المختلفة معلمات مختلفة. سيتم تمرير المعلمات غير المدرجة وفقًا للبروتوكول الأصلي.

فيديو مُنشأ من الصور (مع صور مرجعية)

مرر مصفوفة images لإنشاء فيديو بناءً على الصور المرجعية:

curl "$KOZEAI_BASE_URL/v1/videos/generations" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-H "Content-Type: application/json\

-d {

model: video-ds-2.0,

prompt: استخدم نمط الصورة المرجعية لإنشاء فيديو منتج سلس,

seconds: 15,
aspect_ratio: 9:16,

class="hljs-string">"images": ["https://example.com/input.png"],

"videos": ["https://example.com/input.mp4"],

"audios": ["https://example.com/input.mp3"]

}'

  • images يدعم روابط الصور أو ترميز base64.
  • مقاطع الفيديو / الملفات الصوتية مواد مرجعية اختيارية.
  • عند الاتصال عبر واجهة الإكمال التلقائي للدردشة (انظر نهاية المقال)، ما عليك سوى إرفاق الصورة بالرسالة؛ سيقوم النظام بتحويلها تلقائيًا إلى مُعامل images.

الاستجابة (تم الإرسال بنجاح)

{
"id": "task_12345",

"task_id": "task_12345",

"object": "video",

"model": "video-ds-2.0",
"status": "queued",

"progress": 0,

"created_at": 

}

status القيم: queued (في قائمة الانتظار)، in_progress (قيد التقدم)، completed (مكتمل)، failed (فشل).


2. حالة مهمة الاستطلاع

استخدم id المُعاد من عملية الإرسال للاستطلاع، مع فاصل زمني مُوصى به من 3 إلى 5 ثوانٍ.

curl "$KOZEAI_BASE_URL/v1/videos/task_12345" \

-H "Authorization: Bearer $KOZEAI_API_KEY"

الاستجابة (جاري الإنشاء)

{
"id": "task_12345",

"object": "video",

"status": "in_progress",

"progress": 45,
"created_at": 1751000000
}

الاستجابة (مكتملة)

{
"id": "task_12345",
"object": "video",
"model": "video-ds-2.0",

"status": "completed",

"progress": 100,

"created_at": 1751000000,

بعد اكتمال العملية، يوفر `metadata.content_url` عنوان الفيديو الذي يمكن الوصول إليه مباشرةً؛ كما يمكن تنزيله باستخدام واجهة المحتوى أدناه.

الاستجابة (فشلت)

{
"id": "task_12345",

"object": "video",

"status": "failed",

"error": { "message": "سبب الفشل" }

}

3. تنزيل محتوى الفيديو

curl -L "$KOZEAI_BASE_URL/v1/videos/task_12345/content" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-o result.mp4

  • يُرجع رمز الخطأ 409 (تعارض) إذا لم تكتمل المهمة (لا تزال في قائمة الانتظار/جاري الإنشاء).
  • يدعم التنزيل المُجزأ/تشغيل السحب والإفلات باستخدام طلب header.
  • يُرجع .

مثال كامل

جافا سكريبت (جلب + استطلاع)

const BASE = process.env.KOZEAI_BASE_URL;

const KEY = process.env.KOZEAI_API_KEY;


const headers = { Authorization: `Bearer ${KEY}` };

// 1. إرسال المهمة
const submit = await fetch(`${BASE}/v1/videos/generations`, {

method: 'POST',

headers: { ...headers, 'Content-Type': 'application/json' },

body: JSON.stringify({
model: 'video-ds-2.0',

prompt: 'A smooth commercial video of a perfume bottle on glass',

seconds: 15,

aspect_ratio: '9:16',

}),
});


const task = await submit.json();

const taskId = task.id;


// 2. استطلاع حتى الاكتمال
async function poll() {

while (true) {

const res = await fetch(`${BASE}/v1/videos/${taskId}`, { headers });


const data = await res.json();
if (data.status === 'completed') return data;
if (data.status === 'failed') throw new Error(data.error?.message || 'failed');
await new Promise((r) => setTimeout(r, 5000));


}

const done = await poll();



3. الحصول على عنوان الفيديو
console.log(عنوان الفيديو:, done.metadata?.content_url

|| `${BASE}/v1/videos/${taskId}/content`);
... 

Python (requests + polling)

import os, time, requests

BASE = os.environ["KOZEAI_BASE_URL"]
KEY = os.environ["KOZEAI_API_KEY"]
headers = {"Authorization": f"Bearer {KEY}"}

# 1. إرسال المهمة
resp = requests.post(
f"{BASE}/v1/videos/generations",

headers=headers,

json={

"model":
"video-ds-2.0",

"prompt":
فيديو سينمائي مدته 9:16 لقطة تجري تحت أشعة الشمس الدافئة،

ثانية: 15،

نسبة العرض إلى الارتفاع: 9:16،

},
)
task_id = resp.json()[id]

# 2. الاستطلاع
while True:

data = requests.get(f{BASE}/v1/videos/{task_id}, headers=headers).json()

if data[status] == completed:
break
if data[status] == failed:
raise RuntimeError(data.get( class="hljs-string">"error", {}).get("message", "failed"))
time.sleep(5)

# 3. Download
mp4 = requests.get(f"{BASE}/v1/videos/{task_id}/content", headers=headers)
with open("result.mp4", "wb") as f: f.write(mp4.content)


يتم استدعاؤه في واجهة إكمال المحادثة (استخدام متوافق)

يمكن أيضًا استدعاء نموذج الفيديو عبر /v1/chat/completions، مما يُسهّل إعادة استخدام عملاء المحادثة.

عند تقديم طلب، ما عليك سوى تمرير اسم نموذج الفيديو في `model`، وسيقوم النظام بتحويله تلقائيًا إلى مهمة فيديو:
curl $KOZEAI_BASE_URL/v1/chat/completions

\ -H Authorization: Bearer $KOZEAI_API_KEY \ -H Content-Type: application/json \ -d { Model: } `

returns "video-ds-2.0

, "messages: [{"role: "user, "content: "a cat running in the sunlight, cinematic, 9:16}] }

Returns chat completion

The format is `message.content`, which contains the task status and a link `/v1/videos/{task_id}`. This link will play the video once the complete. The تستخدم صفحة ردهة الدردشة هذه الطريقة.

تتشارك نقطتا الدخول (/v1/videos/generations و/v1/chat/completions) نظام المهام نفسه، ولا يوجد بينهما أي تعارض. وللتكامل المباشر، يُنصح باستخدام واجهة `/v1/videos/*` القياسية.


رمز الخطأ

رمز الحالة المعنى
401 الرمز المميز مفقود، أو منتهي الصلاحية، أو غير صالح
403 رصيد غير كافٍ، أو لا تملك المجموعة الحالية صلاحية الوصول إلى هذا النموذج
404 معرّف المهمة غير موجود، أو لا ينتمي إلى المستخدم الحالي؛ أو النموذج غير مُهيأ.
409 محتوى الفيديو غير جاهز (المهمة لا تزال في قائمة الانتظار/الإنشاء)
429 تجاوز حد معدل التشغيل
502 فشل المورّد الأصلي أو أعاد نتيجة غير صالحة

وثائق استدعاء واجهة برمجة تطبيقات إنشاء الفيديو | Koze AI