ملی ای‌پی‌آی

آموزش ساخت ویدیو با Claude Opus 5.5، از ایده تا فایل نهایی

Claude Opus 5.5 خودش فایل ویدیو نمی‌سازد، ولی بخش سخت کار را خوب انجام می‌دهد: سناریو، فهرست نماها و دستور دقیق هر نما. فایل را مدل ویدیو می‌سازد و Opus دوباره فریم‌های خروجی را می‌بیند و دستور بعدی را اصلاح می‌کند. این راهنما همین چرخه را با API قدم‌به‌قدم نشان می‌دهد.

اول یک نکتهٔ مهم: Opus ویدیو نمی‌سازد

Claude Opus 5.5 یک مدل متنی است. متن و تصویر می‌گیرد و متن پس می‌دهد، پس هیچ فراخوانی از آن یک فایل ویدیو برنمی‌گرداند. اگر جایی دیدید «ویدیو با کلاد ساخته شد»، در واقع کار بین دو مدل تقسیم شده: کلاد نوشته و یک مدل ویدیو تصویر را ساخته.

این تقسیم کار بد نیست، اتفاقاً منطقی است. مدل ویدیو در ساختن تصویر متحرک خوب است، ولی دستوری که می‌گیرد را عیناً اجرا می‌کند. اگر دستور مبهم باشد، خروجی هم مبهم است. بخش سخت کار همین نوشتن دستور است، و اینجا جایی است که Claude Opus 5.5 ارزشش را دارد.

چرخهٔ کار در چهار قدم

  1. سناریو و فهرست نماها را از Opus بگیرید.
  2. برای هر نما یک دستور جدا و دقیق بنویسید، باز هم با Opus.
  3. هر نما را با یکی از مدل‌های ساخت ویدیو بسازید.
  4. از خروجی چند فریم بگیرید، به Opus نشان دهید و دستور نماهایی را که درست درنیامده‌اند اصلاح کنید.
نمودار چرخهٔ چهارقدمی: سناریو و فهرست نماها با Opus، دستور کامل هر نما با Opus، ساخت نما با مدل ویدیو، و بازبینی فریم‌ها با Opus که دوباره به قدم دوم برمی‌گردد
Opus می‌نویسد و بازبینی می‌کند، مدل ویدیو می‌سازد

قدم چهارم همان چیزی است که بیشتر آموزش‌ها جا می‌اندازند، و بیشترین صرفه‌جویی هم از همان می‌آید. هر بار ساخت دوبارهٔ یک نما پول دارد. چند ثانیه وقت برای دیدن فریم و نوشتن دستور بهتر، از چند بار ساختن کورکورانه ارزان‌تر است.

قدم اول: سناریو را به شکل داده بخواهید

از Opus متن آزاد نخواهید. فهرست نماها را با قالب ثابت بخواهید تا برنامه‌تان بتواند آن را بخواند و هر نما را جدا بفرستد. برای هر نما این چهار چیز کافی است: مدت به ثانیه، آنچه در قاب دیده می‌شود، حرکت دوربین، و نور و حال‌وهوا.

curl https://melliapi.net/api/v1/ai/chat/completions/ \
  -H "Authorization: Bearer $MELLIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic-claude-opus-5.5",
    "max_tokens": 1500,
    "messages": [
      {"role": "system", "content": "فهرست نماها را فقط به شکل JSON بده: آرایه‌ای از {duration, subject, camera, mood}."},
      {"role": "user", "content": "یک تیزر کوتاه برای کافه‌ای در تبریز: صبح زود، دم‌کردن قهوه، اولین مشتری."}
    ]
  }'

دو نکته در همین درخواست هست:

  • max_tokens را بفرستید. پیش از هر فراخوان، سقف هزینه از موجودی رزرو می‌شود و آن سقف از همین عدد حساب می‌شود. اگر نفرستید، سقف کامل مدل فرض می‌شود و مبلغ بزرگی بی‌دلیل چند ثانیه قفل می‌ماند. باقی‌اش بعد از پاسخ برمی‌گردد، ولی در همان چند ثانیه درخواست‌های موازی‌تان ممکن است «موجودی کافی نیست» بگیرند.
  • مدت هر نما را به Opus بگویید. هر مدل ویدیو فقط چند مدت مشخص را می‌پذیرد و مقدار ناشناخته رد می‌شود، به نزدیک‌ترین مقدار هم گرد نمی‌شود. مدت‌های مجاز را از صفحهٔ همان مدل ویدیو بردارید و در دستور سیستمی بنویسید.

قدم دوم: یک دستور برای هر نما

مدل ویدیو هر درخواست را مستقل می‌سازد و از نمای قبلی خبر ندارد. اگر در نمای اول «یک فنجان آبی» دارید و در نمای سوم فقط می‌نویسید «فنجان»، رنگش عوض می‌شود. پس از Opus بخواهید هر دستور کامل و مستقل باشد: هر چیزی که باید ثابت بماند (رنگ، لباس، مکان، ساعت روز) در همهٔ دستورها تکرار شود.

دو ردیف سه‌نمایی: در ردیف درست، «فنجان آبی» در دستور هر سه نما تکرار شده؛ در ردیف نادرست فقط نمای اول رنگ را می‌گوید و رنگ فنجان در نمای دوم و سوم ممکن است عوض شود
چیزی که باید ثابت بماند، در هر دستور تکرار می‌شود

یک دستور خوب برای هر نما این‌ها را دارد:

  • سوژه با جزئیات قابل دیدن، نه صفت کلی. «فنجان سرامیکی آبی با لبهٔ لب‌پریده» به‌جای «فنجان زیبا».
  • حرکت دوربین، یکی و ساده. حرکتی که در یک جمله نشود گفتش، در چند ثانیه هم درست درنمی‌آید.
  • نور، چون حال‌وهوای کل تیزر را همین تعیین می‌کند.
  • آنچه نباید باشد، اگر چیزی مدام ناخواسته پیدا می‌شود.
مقایسهٔ دستور مبهم «یک فنجان قهوهٔ زیبا در کافه» با دستور کامل چهاربخشی: سوژه فنجان سرامیکی آبی با لبهٔ لب‌پریده روی پیشخوان چوبی، دوربین نزدیک‌شدن آرام از روبه‌رو، نور آفتاب صبح از پنجرهٔ سمت چپ، و نبودن نوشته یا لوگو روی فنجان
همان صحنه، با دو دستور

زبان دستور را خودتان بسنجید: یک نما را یک بار با دستور فارسی و یک بار انگلیسی بسازید و نتیجه را کنار هم بگذارید. Opus هر دو را به یک اندازه خوب می‌نویسد، پس این آزمون فقط دربارهٔ مدل ویدیوست.

قدم سوم: ساخت نما با API ویدیو

ساخت ویدیو ناهمگام است. درخواست، کار را ثبت می‌کند و به‌جای فایل، یک شناسه برمی‌گرداند. بعد وضعیت را هر چند ثانیه می‌پرسید تا آماده شود.

curl https://melliapi.net/api/v1/ai/videos/ \
  -H "Authorization: Bearer $MELLIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "google-veo-3.1", "prompt": "…دستور نمای اول…", "duration": 8}'

curl https://melliapi.net/api/v1/ai/videos/vid_…/ \
  -H "Authorization: Bearer $MELLIAPI_API_KEY"

وقتی وضعیت succeeded شد، پاسخ videoUrl دارد و دریافت فایل از آن هم همان کلید را می‌خواهد. فیلدهای کامل و کدهای خطا در بخش ساخت ویدیوی مستندات آمده.

اگر می‌خواهید نماها به هم بچسبند، فیلد اختیاری image کمک می‌کند: آخرین فریم نمای قبلی را به‌عنوان تصویر آغازین نمای بعدی بفرستید. همهٔ مدل‌ها تصویر آغازین نمی‌پذیرند؛ صفحهٔ هر مدل می‌گوید.

قدم چهارم: فریم‌ها را به Opus نشان دهید

اینجا Opus دوباره به کار می‌آید، این بار به‌عنوان بازبین. از هر نما دو سه فریم بگیرید، مثلاً با ffmpeg:

ffmpeg -ss 3 -i shot-1.mp4 -frames:v 1 shot-1.jpg

بعد فریم را همراه دستور همان نما به Opus بدهید و بپرسید چه چیزی با دستور نمی‌خواند. تصویر در پیام، مثل هر API سازگار با OpenAI، یک بخش image_url است با نشانی یا data URL.

سؤال را مشخص بپرسید. «خوب است؟» تقریباً همیشه جواب مثبت می‌گیرد. «فهرست کن کدام جزء دستور در این فریم نیست، و دستور اصلاح‌شده را بده» جوابی می‌دهد که مستقیم به قدم سوم برمی‌گردد.

وقتی ویدیو متن فارسی دارد

مقایسهٔ دو مسیر: مدل ویدیو تصویر متحرک واقعی می‌سازد ولی نوشتهٔ داخل تصویرش نامطمئن است و هر تغییر یعنی ساخت دوباره؛ کد انیمیشن با Opus نوشته را دقیقاً همان‌طور که نوشته‌اید نشان می‌دهد و قابل ویرایش است
برای نوشته، عدد و لوگو، مسیر دوم مطمئن‌تر است

اگر ویدیو باید نوشتهٔ فارسی، عدد، نمودار یا لوگو نشان دهد، مدل ویدیو انتخاب خوبی نیست. نوشتهٔ داخل تصویر از ضعف‌های رایج این مدل‌هاست و فارسی، با اتصال حروف و راست‌به‌چپ، سخت‌ترش هم می‌کند. پیش از خرج‌کردن، یک نمای کوتاه بسازید و ببینید.

برای این نوع ویدیو راه دیگری هست: از Opus بخواهید کد انیمیشن بنویسد، مثلاً یک صفحهٔ HTML با انیمیشن CSS یا یک پروژهٔ Remotion، و آن را خودتان به فایل ویدیو تبدیل کنید. متن در این روش دقیقاً همان است که نوشته‌اید، چون مرورگر حروف را می‌کشد و نه یک مدل. برای تیزر محصول، آموزش کوتاه و ویدیوی گزارش، این روش اغلب هم ارزان‌تر است و هم قابل ویرایش.

هزینه را کجا کنترل کنید

  • فراخوان‌های Opus از مصرف واقعی حساب می‌شوند. سناریو و دستورها متن کوتاه‌اند و سهمشان از کل هزینه معمولاً کم است.
  • ساخت ویدیو از روی نرخ هر ثانیه ضرب در مدت حساب می‌شود و مبلغ هنگام ثبت قفل می‌شود. اگر ساخت ناموفق باشد یا در یک ساعت تمام نشود، کامل برمی‌گردد.
  • دستورها را اول با کوتاه‌ترین مدت مجاز امتحان کنید. وقتی ترکیب‌بندی درست شد، نسخهٔ بلند را بسازید.

قیمت زندهٔ هر دو مدل، به تومان، در صفحهٔ خود مدل‌ها آمده.

آنچه این روش انجام نمی‌دهد

  • ویدیوی موجود را ویرایش نمی‌کند. API ویدیو از دستور، و در صورت پشتیبانی مدل از یک تصویر آغازین، نمای تازه می‌سازد. بریدن، چسباندن نماها و صداگذاری نهایی با نرم‌افزار تدوین خودتان است.
  • فایل را برای همیشه نگه نمی‌دارد. ویدیوی ساخته‌شده هفت روز نزد ما می‌ماند و بعد پاک می‌شود. همان لحظه که آماده شد، روی سرور خودتان ذخیره‌اش کنید.
  • کیفیت تصویر را Opus تعیین نمی‌کند. Opus دستور بهتر می‌نویسد و خطا را زودتر پیدا می‌کند، ولی سقف کیفیت هر نما همان سقف مدل ویدیویی است که انتخاب کرده‌اید.

برای دیدن قیمت، پنجرهٔ متن و نمونهٔ کد اتصال، به صفحهٔ Claude Opus 5.5 سر بزنید.

آخرین بازبینی: تیم تحریریه ملی ای‌پی‌آی

پرسش و تجربه کاربران

اگر این راهنما جوابتان را نداد، همین‌جا بپرسید. پرسش‌ها را تیمملی ای‌پی‌آی پاسخ می‌دهد و هر نظر پیش از انتشار بررسی می‌شود.

هنوز پرسشی ثبت نشده، اولین نفر باشید.