پرش به محتوا
همه مستندات

مرجع

POST /v1/videos

یک کلیپ با صدا از متن بساز، با قالب OpenAI: متدهای videos در SDK فقط با تغییر آدرس پایه کار می‌کنند. آن را در صف بگذار، بررسی کن، یک بار دانلود کن، و بعد حذف می‌شود.

بررسی‌شده در ۱۵ آبان ۱۴۰۵

ساختن یک کلیپ

import os
import time
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

clip = client.videos.create(
    model="minimax-h3-max-turbo",
    prompt="Waves breaking on a rocky coast at dusk",
    seconds="5",
    size="1280x720",
)

while clip.status in ("queued", "in_progress"):
    time.sleep(5)
    clip = client.videos.retrieve(clip.id)

if clip.status == "completed":
    client.videos.download_content(clip.id).write_to_file("clip.mp4")

مدل‌ها

مدلبرای چه خوب است480p در ثانیه768p در ثانیه1080p در ثانیه
minimax-h3-max-turboسریع، با صدا. مدلی که با آن شروع کن.$0.045$0.07$0.14
minimax-h3-maxقدم‌های بیشتر از Turbo برای جزئیات ریزتر، با صدا.$0.09$0.14$0.28

برای ثانیه‌هایی که درخواست می‌کنی پول می‌دهی. هر دو مدل کلیپ‌های ۵ تا ۱۵ ثانیه‌ای با صدا می‌سازند.

درخواست

فیلدچه می‌گیردچه کار می‌کند
modelالزامییکی از شناسه‌های مدل بالا.
promptالزامی، تا ۱۰٬۰۰۰ کاراکترآنچه باید فیلم گرفته شود، همان‌طور که نوشته‌ای برای مدل فرستاده می‌شود. بیش از حد مجاز رد می‌شود و هرگز بریده نمی‌شود.
seconds۵ تا ۱۵طول کلیپ، به‌صورت عدد یا رشته. پیش‌فرض ۵ است. عدد ۴ در OpenAI رد می‌شود؛ ۸ و ۱۲ کار می‌کنند.
sizeWIDTHxHEIGHTنزدیک‌ترین وضوح و شکل را انتخاب می‌کند. 1280x720 به 768p با نسبت 16:9 تبدیل می‌شود، و همان چیزی است که پول می‌دهی.
resolution480p، 768p یا 1080pقیمت را تعیین می‌کند و بر size برتری دارد. پیش‌فرض 768p است.
aspect_ratio16:9، 21:9، 4:3، 1:1، 3:4، 9:16بر size برتری دارد. پیش‌فرض 16:9 است.

JSON یا فرم چندبخشی که SDKهای OpenAI استفاده می‌کنند را بفرست. هر فیلد دیگری، مثل seed، کنار گذاشته می‌شود و در x-nokeep-ignored نامش می‌آید. فیلدی که تصویر یا کلیپ را حمل می‌کند، مثل input_reference، با 400 unsupported_input رد می‌شود: این مدل‌ها فقط با متن کار می‌کنند. SDK پایتون OpenAI روی متدهای videos هشدار منسوخ شدن نشان می‌دهد که درباره سرویس ویدیوی خود OpenAI است. این روی درخواست‌ها به ما اثری ندارد و بررسی‌کننده نوع هم ممکن است شناسه مدل را علامت بزند.

مسیرهای کلیپ

مسیرچه کار می‌کند
POST /v1/videosکلیپ را در صف می‌گذارد و قیمتش را نگه می‌دارد.
GET /v1/videos/{id}می‌گوید کلیپ کجاست. هر چند ثانیه بررسی کن.
GET /v1/videos/{id}/contentفایل mp4. یک بار کار می‌کند، بعد کلیپ از میزبان مدل حذف می‌شود. اگر دانلود قطع شد، دوباره درخواست کن.
DELETE /v1/videos/{id}کلیپ تمام‌شده را بدون دانلود حذف می‌کند. کلیپی که هنوز رندر می‌شود 409 video_not_ready می‌دهد.
GET /v1/videosکلیپ‌های اخیر حساب.

شیء کلیپ

JSON
{
  "id": "video_8f3a…",
  "object": "video",
  "model": "minimax-h3-max-turbo",
  "status": "completed",
  "progress": 100,
  "created_at": 1793960000,
  "completed_at": 1793960030,
  "expires_at": 1794042800,
  "seconds": "5",
  "size": "1366x768",
  "resolution": "768p",
  "aspect_ratio": "16:9",
  "error": null,
  "downloaded": false,
  "expired": false,
  "usage": {
    "nokeep_credits": 350
  }
}
  • status یکی از queued، in_progress، completed یا failed است.
  • progress تا وقتی کلیپ تمام نشده ۰ است، بعد ۱۰۰. مدل بین این دو چیزی گزارش نمی‌کند.
  • size از روی وضوح و شکل محاسبه می‌شود، پس فایل ممکن است چند پیکسل فرق کند.

چه چیزی را پرداخت می‌کنی

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

کلیپ کجا می‌ماند

یک کلیپ تمام‌شده تا ۲۳ ساعت روی میزبان مدل، در سطح خصوصی‌اش، می‌ماند. بعد از یک دانلود، یا وقتی حذفش کنی، آنجا حذف می‌شود. ما فایل را هرگز نگه نمی‌داریم، و بعد از آن زمان 410 video_gone جواب می‌دهد. ردیف خودمان دربارهٔ کلیپ شناسه، کلید، مدل، طول، وضوح، شکل، اعتبار و زمان‌ها را دارد، و هرگز پرامپت را ندارد. این ردیف ۴۸ ساعت بعد حذف می‌شود.

محتوا، محدودیت‌ها و خطاها

چهار محدودیت سخت باقی می‌مانند: محتوای جنسی با حضور افراد زیر ۱۸ سال، محتوای جنسی دربارهٔ افراد واقعی، آسیب‌های کشتار جمعی و هدف قرار دادن یک فرد واقعی. پرامپتی که از یکی از این‌ها رد شود 422 hard_limit می‌گیرد و هزینه‌ای ندارد. میزبان مدل هم می‌تواند درخواست را رد کند، که 422 content_refused است و آن هم رایگان است. محدودیت‌های سخت را ببین.

یک کلید می‌تواند ۲۰ کلیپ در دقیقه به صف بگذارد، در داخل ۱۲۰ درخواست کلی، و ۱۰ کلیپ را هم‌زمان رندر کند. بیشتر از آن 429 rate_limited است. صفحهٔ خطاها همهٔ کدها را فهرست می‌کند.

برای آزمودن کدت بدون خرج، sk-nokeep-test را به‌عنوان کلید بفرست. همهٔ بررسی‌ها را اجرا می‌کند، کلیپ را بی‌درنگ تمام‌شده به‌عنوان video_test گزارش می‌دهد، و فایلش خالی است.