الإجابة السريعة: لتمديد فيديو باستخدام Gemini Omni 1.2 Flash، أرسل مقطعك مع أمر توجيهي (prompt) قصير للمتابعة إلى Interactions API. تضيف كل دورة من 3 إلى 10 ثوانٍ وتعيد المقطع الأطول. تتوقف Gemini API عند 30 ثانية إجماليًا، بينما يصل Agent Platform على Google Cloud إلى 40 ثانية، لكن فقط إذا خططت لكل خطوة بعناية حتى لا تُقتطع بداية المقطع.
للحصول على نصائح حول كتابة الأوامر التوجيهية، راجع دليلنا لتمديد المشاهد في Omni 1.1. أما هذا الدليل فيغطي الجديد: طلبات الواجهة، وحسابات ربط المراحل، وتكلفة مقطع مدته 40 ثانية.
كيف يعمل تمديد الفيديو في Gemini Omni 1.2 Flash
يولّد تمديد الفيديو تتمةً في نهاية المقطع. يقرأ النموذج ما يصل إلى آخر 10 ثوانٍ من مدخلاتك بوصفها سياقًا، ثم يكتب من 3 إلى 10 ثوانٍ جديدة ويلحقها بالمقطع. الإضافة تكون في النهاية فقط: لا يمكنك إدراج لقطات في البداية أو تمديد الجزء الأوسط.
توثّق Google حدودًا مختلفة بحسب المكان الذي تستدعي منه النموذج:
| Gemini API | Agent Platform (Google Cloud) | |
|---|---|---|
| المصادقة | مفتاح API | مشروع ورمز وصول (access token) |
| المدة الإجمالية | 30 ثانية | 40 ثانية |
| طول المدخلات | لا يوجد حد منفصل مذكور | أي مدة |
| الصور المرجعية | حتى 6 صور على Omni | حتى صورتين لكل تمديد |
| وضع التمديد | الأمر التوجيهي أولًا، مع task كخيار بديل |
task: "extend" في جميع الأمثلة |
| قيمة seed والتسميات | غير مذكورة في وثائق Omni | generation_config.seed، labels |
| النتائج المخزنة | 55 يومًا على الخطة المدفوعة | حتى 7 أيام |
المصادر: وثائق Omni الخاصة بـ Gemini API ووثائق التمديد على Agent Platform.
على Agent Platform، يقرأ النموذج ما يصل إلى آخر 10 ثوانٍ، ثم يلحق المقطع الجديد بآخر 30 ثانية من المدخلات. في مثال Google، يُمدَّد مدخل مدته 60 ثانية بمقدار 10 ثوانٍ فتعود النتيجة 40 ثانية، أي أن أول 30 ثانية تكون قد سقطت.

لن تحتاج إلى تركيب أي شيء بنفسك، لأن المخرجات تتضمن اللقطات السابقة. ومع ذلك، تعمل Google على تعديل بعض الإطارات الأخيرة من مدخلاتك لتسهيل الانتقال.
ما الذي تغيّر في ميزة التمديد في الإصدار 1.2
- مقاطع بداية مدتها 15 ثانية. كان الحد في 1.1 هو 10 ثوانٍ. وتبقى كل دورة تمديد محدودة بـ10 ثوانٍ كحد أقصى.
- الصور المرجعية وقيمة seed والتسميات labels في طلبات التمديد على Agent Platform.
- صيغة جديدة للأوامر التوجيهية. أوقفت Google دعم الوسوم مثل
<IMAGE_REF_0>التي تعتمدها الأدلة القديمة. صِف كل صورة بلغة طبيعية. - نوع جديد للمدخلات. تُرسل الأمثلة الحالية
"type": "video"بدلًا من النوعdocumentالوارد في أمثلة 1.1.
تمديد فيديو خطوة بخطوة عبر Gemini API
- أنشئ مقطعًا، أو ارفع مقطعًا عبر Files API. تُحذف الملفات المرفوعة بعد 48 ساعة.
- صِف فقط ما سيحدث تاليًا.
- اضبط قيمة
durationبين"3s"و"10s"(القيمة الافتراضية 10). - احفظ معرّف التفاعل (interaction ID) لاستخدامه في الدورة التالية.
from google import genai
client = genai.Client()
first = client.interactions.create(
model="gemini-omni-1.2-flash",
input="A courier in a yellow jacket cycles through a rainy night market.",
response_format={"type": "video", "duration": "15s"},
)
second = client.interactions.create(
model="gemini-omni-1.2-flash",
previous_interaction_id=first.id,
input="The courier brakes at a red door. Keep the same yellow jacket.",
response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)
لتمديد لقطاتك الخاصة، استبدل previous_interaction_id بمصفوفة مدخلات تتضمن {"type": "video", "uri": video_file.uri} مع عنصر نصي.
- اترك
taskجانبًا في البداية. تذكر Google أنه يفرض قيودًا صارمة، لذا اضبط"task": "extend"داخلvideo_configكخيار بديل فقط. - استخدم
delivery: "uri"للأحجام فوق 4 ميجابايت. احفظ الـ URI الوارد في استجابة الإنشاء. أي استدعاءGETلاحق يُعيد بيانات base64 مضمّنة حتى مع الطلبات من نمط URI. - أبقِ
storeمفعّلًا. عند الضبط علىstore: false، لن تتمكن من المتابعة انطلاقًا من معرّف التفاعل نفسه.
للرفعُ حدّان إضافيان: لا يمكن إضافة حوار فوق مقطع يصوّر أحدًا وهو يتحدث، ولا يمكن التمديد من المنطقة الاقتصادية الأوروبية أو سويسرا أو المملكة المتحدة. أما التمديد متعدد الدورات لفيديو مولّد فيتجنب هذين القيدين.
جولة في بناء الطلب على Agent Platform
استخدم هذا المسار للحصول على 40 ثانية أو عند الحاجة إلى طابور مهام. قد يستغرق التوليد أكثر من دقيقة، لذا أرسل هذا الجسم عبر POST إلى https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions مع تفعيل background:
{
"model": "gemini-omni-1.2-flash",
"background": true,
"input": [
{ "type": "text", "text": "The courier opens the red door and steps inside." },
{ "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
],
"response_format": [
{
"type": "video",
"delivery": "uri",
"gcs_uri": "gs://my-bucket/out/",
"aspect_ratio": "16:9",
"duration": "5s"
}
],
"generation_config": {
"seed": 4242,
"video_config": { "task": "extend" }
},
"labels": { "campaign": "courier", "hop": "2" }
}
يُعيد الاستدعاء معرّف تفاعل حالته in_progress. تحقّق منه دوريًا عبر GET .../locations/global/interactions/INTERACTION_ID. عند اكتمال العملية، اقرأ الـ URI بصيغة gs:// من خطوة model_output ضمن steps. ويصبح هذا الـ URI هو المدخل لمرحلتك التالية.
توجد أيضًا أوضاع بلا حالة (store: false) وذات حالة (store: true) ووضع التدفق (streaming). تبقى النتائج المخزنة وغير المتزامنة متاحة حتى 7 أيام، لذا انسخ كل ما تحتاجه.
[VERIFY] لم يُنفَّذ: لم يتوفر مشروع على Google Cloud. لا يتضمن نموذج Google لأرجحة الطلب لاseedولاlabels، لذا تحقق من موضعيهما.
ربط المراحل للوصول إلى حد الـ40 ثانية
لا تحفظ المرحلة كامل لقطاتك إلا إذا كان مدخلها 30 ثانية أو أقل. ولبلوغ 40 ثانية دون أن تفقد شيئًا، احرص أولًا على الوصول إلى 30 ثانية بالضبط.
| المرحلة | المدة duration المخططة |
المخرجات المخططة | المدة duration دون تخطيط |
المخرجات دون تخطيط |
|---|---|---|---|---|
| البداية | 15 ثانية | 15 ثانية | 15 ثانية | 15 ثانية |
| 1 | 10 ثوانٍ | 25 ثانية | 10 ثوانٍ | 25 ثانية |
| 2 | 5 ثوانٍ | 30 ثانية | 10 ثوانٍ | 35 ثانية |
| 3 | 10 ثوانٍ | 40 ثانية | 10 ثوانٍ | 40 ثانية مع فقد أول 5 ثوانٍ |

تمنحك السلسلة بدون تخطيط 5 ثوانٍ إضافية ثم تتخلص من بداية المقطع. ولن تحذرك مدة المقطع من ذلك، لأن كلتا السلسلتين تعيدان 40 ثانية.
البداية بـ15 ثانية لا توفر استدعاءات عند استهداف 40 ثانية: فالبداية بـ10 ثوانٍ تتطلب ثلاثة تمديدات كذلك. لكنها تفيد في الحالات الأخرى، إذ إن بلوغ 25 ثانية يتطلب تمديدًا واحدًا بدلًا من اثنين، وبلوغ 35 يتطلب اثنين بدلًا من ثلاثة.
على Gemini API، توقّف بعد المرحلة الثانية. لا تذكر Google ماذا يحدث لطلب يتجاوز 30 ثانية.
ثبّت الشخصيات باستخدام الصور المرجعية وقيمة seed
الشخصية التي خرجت من الكادر قبل الـ10 ثوانٍ الأخيرة يتعذر على النموذج رؤيتها، حتى لو بقيت تلك الإطارات في المقطع. وحل Google: أشر إليها مجددًا أو مرّر صورة مرجعية في مصفوفة input نفسها:
{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }
- أعد استخدام الصورة نفسها في كل مرحلة تحتاج تلك الشخصية.
- اختر الصور بعناية على Agent Platform. فصورتان لكل تمديد لا تكفيان إلا لأهم ما يُرجَّح أن يفقد اتساقه.
- لا ترسل فيديوهات مرجعية. فـ Google تدعمها للتوليد الجديد فقط، لا للتمديد.
- حدّد التوقيتات انطلاقًا من المقطع الجديد. فاللحظة 0s في أمرك التوجيهي تعني بداية الجزء الممدود، لا بداية المقطع بأكمله.
اضبط generation_config.seed للحصول على نتائج قابلة للتكرار. وهو أنفع ما يكون أثناء تصحيح الأخطاء: أعد تشغيل المرحلة بالقيمة نفسها لترى ما إذا كان التغيير ناتجًا عن أمرك التوجيهي. لا تعد Google بأن قيمة seed ستحافظ على ثبات شخصية عبر أوامر توجيهية مختلفة، فاعتمد في ذلك على الصور المرجعية. واستخدم labels لتتبع الفوترة لكل مرحلة.
كم يكلف مقطع مدته 40 ثانية
تسعّر صفحة الأسعار لدى Google مخرجات فيديو Omni 1.2 بمعدل 12.00 دولار لكل مليون رمز (token). ولا توضح ما إذا كانت فوترة التمديد تشمل الثواني الجديدة فقط أم كل ثانية تُعاد. تولّد السلسلة المخططة 40 ثانية لكنها تعيد 15 و25 و30 و40، أي ما مجموعه 110.
| الدقة | لكل ثانية | إذا فوترت الثواني الجديدة فقط | إذا فوترت كل ثانية معادة |
|---|---|---|---|
| 360p | 0.023 دولار | 0.93 دولار | 2.55 دولار |
| 720p | نحو 0.07 دولار | 2.78 دولار | 7.65 دولار |
| 1080p (بترقية الدقة) | 0.104 دولار | 4.17 دولار | 11.47 دولار |
| 4K (بترقية الدقة) | 0.209 دولار | 8.34 دولار | 22.94 دولار |
هذه أسعار Gemini API محسوبة من أعداد الرموز في الثانية التي تحددها Google. وتُضاف فوقها رموز المدخلات (1.50 دولار لكل مليون) ورموز التفكير (9.00 دولارات لكل مليون).
إلى أن تتحقق بنفسك، اجعل حسابك على العمود الأيمن. ولمراقبة الفاتورة:
- اعمل مسودتك بدقة 360p وتحقق من السلسلة كاملة قبل أن تدفع مقابل 720p.
- اختر الدقة قبل ربط المراحل. صفحة النموذج على Agent Platform تحدد مدخل ترقية الدقة بـ15 ثانية كحد أقصى، لذا لن يدخل مقطع منتهٍ مدته 40 ثانية في عملية واحدة.
- خذ في الحسبان إعادة التوليد في اللقطات الصعبة. يشير إعلان Google إلى حركة الرياضة السريعة، والتغيّرات المتسارعة في السيناريو، والفيزياء المعقدة بوصفها مجالات ما زالت قيد التحسين.
تُوجَّه الطلبات المرسلة إلى gemini-omni-1.1-flash إلى الإصدار 1.2 اعتبارًا من 3 ديسمبر 2026 وتُفوتر وفق أسعار 1.2.
دع وكيل البرمجة لديك يختبر التدفق غير المتزامن باستخدام Apidog CLI
تتعطل السلاسل غير المتزامنة بصمت: استقصاء لا ينتهي أبدًا، أو تشغيلة تنتهي بالحالة failed، أو شكل استجابة يتغير. دع وكيل البرمجة لديك يبني هذا الاختبار باستخدام Apidog CLI ويشغّله نيابة عنك.
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install
ثم امنح Claude Code أو Codex أو Cursor أمرًا توجيهيًا واحدًا:
In Apidog project <id>, create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.
يتحقق الوكيل من صحة حمولته، ثم يبني السيناريو ويشغّله:
apidog cli-schema get test-scenario-update
apidog test-scenario create --project <id> --name "omni-extend-async" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <postId>,<getId>
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update <scenarioId> --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <envId> --timeout-request 300000 -r cli,junit --out-dir ./reports
كل تشغيلة تترتب عليها فوترة مقطع حقيقي، لذا شغّله مجدولًا كل ليلة لا عند كل عملية commit. تكلف المرحلة الواحدة بدقة 360p ومدتها 3 ثوانٍ نحو 0.07 دولار إذا فوترت الثواني الجديدة فقط. ويمكن إدراج السطر نفسه في خط أنابيب CI/CD كما يوضح دليل Apidog CLI لخطوط CI/CD لدينا، بينما يغطي دليل إعداد Claude Code جانب الوكيل. تغطي خطة Apidog المجانية حتى 4 مستخدمين.
الأسئلة الشائعة
ما أقصى مدة لفيديو Gemini Omni 1.2 Flash؟ يتراوح التوليد الواحد بين 3 و15 ثانية. ومع التمديد، تذكر وثائق Gemini API حدًا إجماليًا قدره 30 ثانية، بينما تذكر وثائق Agent Platform حدًا قدره 40.
لماذا اختفت بداية الفيديو بعد تمديده؟ على Agent Platform، يُحتفظ بآخر 30 ثانية من المدخلات فقط. أي مدخل يتجاوز 30 ثانية يفقد بدايته. خطط لمراحلك بحيث تبدأ المرحلة الأخيرة من 30 ثانية بالضبط.
هل يمكنني تمديد فيديو صوّرته بنفسي؟ نعم، من خارج المنطقة الاقتصادية الأوروبية وسويسرا والمملكة المتحدة. ارفعه عبر Files API أو أشر إلى مسار على Cloud Storage عند العمل على Agent Platform. ولا يمكنك إضافة حوار إلى مقطع مرفوع يظهر فيه أحد وهو يتحدث.
هل يمكنني تمديد مقطع مجانًا؟ ليس عبر API. تسرد Google الخطة المجانية بوصفها «غير متاحة» في Omni 1.2 و1.1، فحتى الاختبار يترتب عليه فاتورة. إن التمديد بدقة 360p ومدته 3 ثوانٍ هو الأرخص ما يمكنك تشغيله.
