cd ../back to blog
$Guide//June 4, 2026//7 min read

واجهة Veo 3 وSora: أول نداء لتوليد الفيديو عبر Brievio

دليل عملي لإجراء أول نداء لواجهة Veo 3 وSora عبر بوابة Brievio المتوافقة مع OpenAI — تحويل من نص أو صورة إلى فيديو، تحكم في الإطار الأول والأخير، مقاطع عمودية 9:16، روابط نتائج دائمة، دون قائمة انتظار، وفوترة لكل ثانية.

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

يرشدك هذا الدليل خطوة بخطوة إلى إجراء أول نداء لواجهة Veo 3 وSora عبر Brievio — النماذج الأصلية، دون قائمة انتظار، مصادقة متوافقة مع OpenAI، فوترة لكل ثانية من الفيديو المُولَّد، ونتائج تُقدَّم من رابط دائم. الزمن الإجمالي: نحو خمس دقائق.

الإعداد

  1. سجّل في brievio.com/app/signup. تحصل على رصيد قدره ‎$2 عند التسجيل — يكفي لمقطعَي اختبار مدة كل منهما 5 ثوانٍ.
  2. أنشئ مفتاحاً في /app/keys. يبدأ بـ sk-brievio-.
  3. صدّره: export BRIEVIO_API_KEY=sk-brievio-....

من النص إلى فيديو باستخدام Veo 3

يُعدّ Veo 3 حالياً أفضل نموذج للتحويل من النص إلى فيديو في السوق للّقطات السينمائية — فهو يفهم لغة الكاميرا (التتبّع، والاقتراب، وتحويل البؤرة)، وينتج إضاءة ثابتة عبر المشاهد، ويتعامل مع حركة 24fps بشكل صحيح. يستغرق التوليد من 30 ثانية إلى بضع دقائق؛ واستجابة HTTP متزامنة — فاضبط مهلة طويلة على العميل.

text_to_video.py
import requests, os, time

KEY = os.environ["BRIEVIO_API_KEY"]

resp = requests.post(
    "https://api.brievio.com/v1/video/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
        "model": "veo-3",
        "prompt": "A drone shot pulling back from a quiet mountain lake at dawn, mist rising off the water. Cinematic, 24fps, soft golden light.",
        "duration": 8,
        "aspect_ratio": "16:9",
        "resolution": "1080p",
    },
    timeout=600,   # توليد المقطع يستغرق من 30 ثانية إلى عدة دقائق
)
resp.raise_for_status()
data = resp.json()
print(data["data"][0]["url"])

الاستجابة على نمط OpenAI: { data: [{ url: '...' }] }. والرابط دائم، يُقدَّم من files.brievio.com — نزّله مرة واحدة إلى مخزنك الخاص إن احتجت إلى استضافة طويلة الأمد. والمقطع هو مخرج Veo 3 الأصلي، لا نسخة معاد ترميزها أو موسومة بعلامة مائية.

من صورة إلى فيديو

التثبيت بصورة هو عادةً ما يمنحك نتائج بجودة إنتاجية. يدعم Veo 3 وضعَين للصور:

  • image_mode: "frame" — الصورة الواحدة هي الإطار الأول؛ والصورتان هما الإطار الأول + الأخير. الوضع الافتراضي لـ image_url.
  • image_mode: "reference" — حتى 3 مراجع أسلوبية لاتساق الشخصية / الملابس دون فرض الإطارات.
image_to_video.py
# من صورة إلى فيديو: مرّر image_url لتثبيت الإطار الأول.
resp = requests.post(
    "https://api.brievio.com/v1/video/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
        "model": "veo-3",
        "prompt": "She smiles, then walks out of frame to the left",
        "image_url": "https://files.brievio.com/<your-upload>.jpg",
        "image_mode": "frame",      # صورة واحدة => الإطار الأول
        "duration": 6,
        "aspect_ratio": "9:16",     # عمودي، أصلي للهاتف المحمول
    },
    timeout=600,
)
print(resp.json()["data"][0]["url"])

إن لم يكن لديك أصلاً رابط عام لصورة التثبيت، فأرسل البايتات إلى /v1/files ويستضيف Brievio الملف نيابةً عنك تحت files.brievio.com:

upload_anchor.py
# إن لم يكن لديك رابط عام، ارفع البايتات؛ يستضيف Brievio الملف.
with open("anchor.jpg", "rb") as f:
    up = requests.post(
        "https://api.brievio.com/v1/files",
        headers={"Authorization": f"Bearer {KEY}"},
        files={"file": f},
    )
image_url = up.json()["url"]   # رابط files.brievio.com دائم

Sora ونماذج أخرى

بنية نقطة النهاية نفسها تعمل مع كل نموذج فيديو في الكتالوج — مرّر مُعرّف النموذج المناسب:

  • veo-3 — سينمائي، 1080p، يدعم التحويل من صورة إلى فيديو.
  • sora-2 — Sora من OpenAI.
  • seedance-1-5-pro، seedance-2-0-pro — من ByteDance، قوي جداً في حركة الشخصيات.

راجع /models للحصول على القائمة المباشرة والسعر لكل ثانية على كل نموذج.

من Node / TypeScript

sora.mjs
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.BRIEVIO_API_KEY,
  baseURL: "https://api.brievio.com/v1",
});

// المسار /v1/video/generations ليس ضمن بنية SDK الخاصة بـ OpenAI، لكن ترويسة
// المصادقة نفسها تعمل — استدعِه عبر fetch:
const resp = await fetch(
  "https://api.brievio.com/v1/video/generations",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${process.env.BRIEVIO_API_KEY}`,
    },
    body: JSON.stringify({
      model: "sora-2",
      prompt: "A red origami crane unfolding into a paper plane and flying away through a window",
      duration: 5,
      resolution: "1080p",
    }),
  },
);
const { data } = await resp.json();
console.log(data[0].url);

نموذج التسعير

نماذج الفيديو تُحاسِب لكل ثانية من المخرجات، لا لكل توكن. ينشر Brievio السعر لكل ثانية على /pricing لكل نموذج فيديو — بسعر أقل بقليل من القائمة الرسمية. ويكلّف مقطع Veo 3 بدقة 1080p بمدة 8 ثوانٍ، وهو شائع، بضعة سنتات. أما عمليات التوليد الفاشلة (4xx / 5xx) فلا تُحاسَب أبداً.

قائمة التحقق للإنتاج

  • اضبط مهلة HTTP مدتها 10 دقائق. يستعلم الـ gateway من المصدر حتى 540 ثانية، ويعيد 504 إن كان النموذج لا يزال يعمل بعد ذلك. وللمهام الطويلة جداً، أعد المحاولة — فالتوليد عديم الأثر الجانبي لكل prompt.
  • احفظ رابط النتيجة. رغم أن روابط files.brievio.com دائمة، ينبغي أن يمتلك منتجك نسخته الخاصة في المخزن الذي تتحكم فيه.
  • تعامل مع 429 بتراجع تدريجي. نماذج الفيديو مقيّدة بوحدات GPU؛ والتزاحم القصير أمر طبيعي. وتُحترم ترويسة retry-after عند وجودها.
  • خزّن مؤقتاً بحسب بصمة الـ prompt إن كان ذلك منطقياً. الـ prompt نفسه + البذرة + النموذج يعيد فيديو شبه متطابق — والدفع مقابله مرتين إهدار.

للأسئلة: contact@brievio.com. الفريق الذي يقف خلف الـ gateway يقرأ كل رسالة ويردّ خلال 24 ساعة.