مرجع
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 رد میشود؛ ۸ و ۱۲ کار میکنند. |
size | WIDTHxHEIGHT | نزدیکترین وضوح و شکل را انتخاب میکند. 1280x720 به 768p با نسبت 16:9 تبدیل میشود، و همان چیزی است که پول میدهی. |
resolution | 480p، 768p یا 1080p | قیمت را تعیین میکند و بر size برتری دارد. پیشفرض 768p است. |
aspect_ratio | 16: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 | کلیپهای اخیر حساب. |
شیء کلیپ
{
"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 گزارش میدهد، و فایلش خالی است.