> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# البدء السريع لـ Veo 3 API: أنشئ مقاطع فيديو باستخدام CometAPI

> أنشئ مهمة فيديو Veo باستخدام CometAPI، واستطلع حالة المهمة، وخزّن مخرجات الفيديو المكتملة باستخدام curl أو Python أو Node.js.

## ما الذي ستبنيه

ستنشئ مهمة فيديو Veo واحدة باستخدام بيانات نموذج multipart، وتخزّن معرّف المهمة المُعاد، وتستطلع نقطة نهاية الاسترجاع، وتحفظ عنوان URL النهائي للأصل أو الملف في نظامك الخاص.

## المتطلبات الأساسية

* مفتاح CometAPI API مخزّن في `COMETAPI_KEY`
* Python 3.10+ مع `requests`، أو Node.js 18+
* مشغّل مهام على جانب الخادم للاستطلاع

## مفتاح API، عنوان URL الأساسي، والمصادقة

أنشئ مهام Veo باستخدام:

```text theme={null}
POST https://api.cometapi.com/v1/videos
```

استطلع حالة مهمة Veo باستخدام:

```text theme={null}
GET https://api.cometapi.com/v1/videos/<task_id>
```

صادق باستخدام Bearer token:

```text theme={null}
Authorization: Bearer $COMETAPI_KEY
```

## أمثلة الشيفرة

استخدم علامات التبويب أدناه للحصول على أمثلة قابلة للنسخ في cURL وPython وNode.js.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/videos \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -F model=veo3.1-fast \
    -F "prompt=A paper kite floats above a field." \
    -F seconds=4 \
    -F size=1280x720

  curl "https://api.cometapi.com/v1/videos/<task_id>" \
    -H "Authorization: Bearer $COMETAPI_KEY"
  ```

  ```python Python theme={null}
  import os
  import time

  import requests

  api_key = os.environ["COMETAPI_KEY"]
  headers = {"Authorization": f"Bearer {api_key}"}

  create_response = requests.post(
      "https://api.cometapi.com/v1/videos",
      headers=headers,
      files={
          "model": (None, "veo3.1-fast"),
          "prompt": (None, "A paper kite floats above a field."),
          "seconds": (None, "4"),
          "size": (None, "1280x720"),
      },
      timeout=60,
  )
  create_response.raise_for_status()
  task_id = create_response.json()["id"]

  for _ in range(60):
      retrieve_response = requests.get(
          f"https://api.cometapi.com/v1/videos/{task_id}",
          headers=headers,
          timeout=30,
      )
      retrieve_response.raise_for_status()
      task = retrieve_response.json()
      if task["status"] in {"completed", "failed", "error"}:
          print(task)
          break
      time.sleep(5)
  else:
      raise TimeoutError("Veo task did not finish in time")
  ```

  ```javascript Node.js theme={null}
  const form = new FormData();
  form.append("model", "veo3.1-fast");
  form.append("prompt", "A paper kite floats above a field.");
  form.append("seconds", "4");
  form.append("size", "1280x720");

  const createResponse = await fetch("https://api.cometapi.com/v1/videos", {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },
    body: form,
  });

  if (!createResponse.ok) {
    throw new Error(await createResponse.text());
  }

  const { id } = await createResponse.json();

  for (let attempt = 0; attempt < 60; attempt += 1) {
    const retrieveResponse = await fetch(`https://api.cometapi.com/v1/videos/${id}`, {
      headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },
    });

    if (!retrieveResponse.ok) {
      throw new Error(await retrieveResponse.text());
    }

    const task = await retrieveResponse.json();
    if (["completed", "failed", "error"].includes(task.status)) {
      console.log(task);
      break;
    }
    await new Promise((resolve) => setTimeout(resolve, 5000));
  }
  ```
</CodeGroup>

## شرح التدفق

إنشاء فيديو Veo عملية غير متزامنة. تقبل نقطة نهاية الإنشاء بيانات نموذج multipart وتعيد معرّف مهمة فورًا. استطلع نقطة نهاية الاسترجاع حتى تصل المهمة إلى حالة نهائية، ثم خزّن عنوان URL النهائي للفيديو أو تفاصيل الملف من الاستجابة المكتملة.

استخدم مددًا قصيرة وأصغر حجم مفيد في الاختبارات الأولى. انقل الأصول المكتملة إلى مساحة التخزين الخاصة بك عندما يحتاج تطبيقك إلى الاحتفاظ بها.

## المعلمات الشائعة

| Parameter         | الاستخدام                                                         |
| ----------------- | ----------------------------------------------------------------- |
| `model`           | model ID الخاص بـ Veo. يستخدم مثال مرجع API القيمة `veo3.1-fast`. |
| `prompt`          | Prompt نصي لمهمة الفيديو.                                         |
| `seconds`         | حقل نموذج المدة. يوثّق المرجع القيم `4` و`6` و`8`.                |
| `size`            | مقاس `WxH` دقيق، مثل `1280x720`.                                  |
| `input_reference` | ملف صورة اختياري للإطار الأول من أجل image-to-video.              |

## استكشاف الأخطاء وإصلاحها / الأسئلة الشائعة

<AccordionGroup>
  <Accordion title="يفشل الطلب بسبب مشكلة في نوع المحتوى">
    أرسل بيانات نموذج multipart. لا ترسل طلبات إنشاء Veo بصيغة JSON.
  </Accordion>

  <Accordion title="تستغرق عملية polling وقتًا أطول من المتوقع">
    استخدم حلقة polling محدودة، وخزّن task ID، واعرض حالة pending في تطبيقك بدلًا من حظر طلب ويب.
  </Accordion>

  <Accordion title="كيف ينبغي أن أتحكم في التكلفة">
    ابدأ بمدة قصيرة، ومهمة واحدة، وأصغر حجم مقبول. استخدم حصص الحساب وتقدير التكلفة قبل توسيع عدد المهام.
  </Accordion>
</AccordionGroup>

## الخطوات التالية

* اقرأ [مرجع Create a Veo 3 video API](/api/video/veo3/create).
* استخدم polling مع [Retrieve a Veo 3 video](/api/video/veo3/retrieve).
* اعثر على نماذج فيديو Veo في [Models](/ar/overview/models).
* راجع [استخدام polling وwebhooks لتوليد الفيديو](/ar/guides/webhook-and-polling-for-video-generation).
* قدّر تكلفة المهمة باستخدام [تقدير تكلفة الطلب قبل استدعاء model](/ar/guides/how-to-estimate-cost-before-calling-a-model).
