تخطَّ إلى المحتوى
مرجع API
مرجع API

Vidu صورة إلى فيديو

حرّك صورة الإطار الأول باستخدام Vidu Q4 بدقة من 540p إلى 4K، مع خيار توليد الصوت.

01

نظرة عامة

استخدم نقطة نهاية الصورة إلى فيديو مع نموذج مدعوم. استخدم معرّف المهمة المُعاد لاسترداد حالتها، أو أدخل callback_url للتسليمات الموثقة أدناه.

البدء السريع

  1. أنشئ مفتاح API واضبطه كـ RUNAPI_API_KEY.
  2. اختر نموذجاً مدعوماً وأرسل طلب POST يطابق مخطط ذلك النموذج.
  3. احفظ معرّف المهمة المُعاد، ثم استطلع الحالة حتى تبلغ حالة نهائية أو تعالج عمليات الاستدعاء الموثقة أدناه.

نقطة النهاية

POST /api/v1/vidu/image_to_video
عنوان URL الأساسي
https://runapi.ai
إصدار API
v1
المصادقة
Authorization: Bearer YOUR_API_TOKEN
02

النماذج المدعومة

افتح صفحة النموذج للاطلاع على التسعير الحالي وحدود المعدل وتفاصيل الاستخدام التجاري.

03

مخطط الطلب

نص JSON

تعتمد الحقول والقيم المسموح بها على النموذج المحدد. عند التوفير، يستقبل callback_url عمليات تسليم المهمة الموثّقة أدناه.

vidu-q4-image-to-video7 حقل
audioboolean
اختياري

توليد الصوت المتزامن. خطأ ينتج فيديو صامت.

القيمة الافتراضية: true
callback_urlstring
اختياري

عنوان URL لرد اتصال العميل RunAPI لنتيجة المهمة الطرفية.

duration_secondsinteger
اختياري

مدة الفيديو بالثواني.

القيمة الافتراضية: 5 نطاق: 3 - 16
first_frame_image_urlstring
مطلوب

HTTP(S) عنوان URL للإطار الأول JPG أو JPEG أو PNG أو WEBP، حتى 50 ميجابايت. يقوم الموفر بالتحقق من صحة الملف البعيد.

modelstring
مطلوب

نموذج Vidu Q4 لتحويل الصورة إلى فيديو.

output_resolutionstring
اختياري

دقة فيديو الإخراج.

القيم المسموح بها: 540p, 720p, 1080p, 2k, 4k القيمة الافتراضية: 720p
promptstring
اختياري

وصف فيديو اختياري، يصل إلى 20000 حرف.

حد: 20000
04

إنشاء قبول

HTTP 202

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    },
    "task_replayed": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "id": "tsk_reference_demo",
  "status": "processing"
}
05

الاستطلاع قيد المعالجة

HTTP 200

GET /api/v1/vidu/image_to_video/:id

مخطط الاستجابة
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "id": "tsk_reference_demo",
  "status": "processing"
}
06

اكتمل الاستطلاع

HTTP 200

GET /api/v1/vidu/image_to_video/:id

مخطط الاستجابة
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "usage": {
      "properties": {
        "cost": {
          "type": "number"
        }
      },
      "required": [
        "cost"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos",
    "usage"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "id": "tsk_reference_demo",
  "status": "completed",
  "usage": {
    "cost": 0.05
  },
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
07

فشل الاستطلاع

HTTP 200

GET /api/v1/vidu/image_to_video/:id

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Task processing failed.",
  "id": "tsk_reference_demo",
  "status": "failed"
}
08

استدعاء العميل: مكتمل

HTTP 200

POST callback_url

مخطط الاستجابة
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "usage": {
      "properties": {
        "cost": {
          "type": "number"
        }
      },
      "required": [
        "cost"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos",
    "usage"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "id": "tsk_reference_demo",
  "status": "completed",
  "usage": {
    "cost": 0.05
  },
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
09

استدعاء العميل: فشل

HTTP 200

POST callback_url

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "properties": {
            "code": {
              "type": "string"
            },
            "limit_cents": {
              "type": "integer"
            },
            "message": {
              "type": "string"
            },
            "reset_at": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "used_cents": {
              "type": "integer"
            },
            "window": {
              "enum": [
                "1h",
                "1d",
                "7d",
                "daily",
                "weekly",
                "monthly",
                "lifetime"
              ],
              "type": "string"
            }
          },
          "required": [
            "code",
            "message"
          ],
          "type": "object",
          "unevaluatedProperties": false
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": {
    "code": "generation_failed",
    "message": "Task processing failed."
  },
  "id": "tsk_reference_demo",
  "status": "failed"
}
10

الأخطاء

HTTP 401

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Authentication required"
}
11

الأخطاء

HTTP 401

GET /api/v1/vidu/image_to_video/:id

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Authentication required"
}
12

الأخطاء

HTTP 400

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "رسالة خطأ قابلة للقراءة البشرية.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "ملخص التحقق القابل للقراءة البشرية.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "رسائل التحقق مفتاحها حقل الطلب العام، مع مصفوفة من السلاسل القابلة للقراءة البشرية لكل حقل.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

مثال على الاستجابة

JSON
{
  "error": "model must be one of: vidu-q4-image-to-video"
}
13

الأخطاء

HTTP 402

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Insufficient balance"
}
14

الأخطاء

HTTP 429

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "API key credit limit exceeded"
}
15

الأخطاء

HTTP 409

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
16

الأخطاء

HTTP 429

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Rate limit reached. Please retry later."
}
17

الأخطاء

HTTP 503

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Service under maintenance, please try again later"
}
18

الأخطاء

HTTP 504

POST /api/v1/vidu/image_to_video

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "The request timed out"
}
19

الأخطاء

HTTP 404

GET /api/v1/vidu/image_to_video/:id

مخطط الاستجابة
JSON
{
  "properties": {
    "error": {
      "description": "رسالة خطأ قابلة للقراءة البشرية.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

مثال على الاستجابة

JSON
{
  "error": "Task with id 'tsk_reference_demo' not found"
}
20

نماذج الأكواد المولَّدة

استخدم cURL مباشرةً، أو ثبّت SDK للغة البرمجة التي تستخدمها. كل نموذج يُرسل الطلب الذي تم التحقق من صحته كما هو موضح في هذا المرجع.

التثبيت

Shell
pip install runapi-vidu
PYTHON
import os
from runapi.vidu import ViduClient

client = ViduClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.image_to_video.create(
  model="vidu-q4-image-to-video",
  first_frame_image_url="https://file.runapi.ai/first-frame.png",
  prompt="The camera slowly moves forward.",
  audio=False,
  duration_seconds=5,
  output_resolution="720p"
)