Đi tới nội dung
Tất cả tài liệu

Tham chiếu

POST /v1/videos

Tạo một clip có âm thanh từ prompt văn bản, theo định dạng OpenAI: các phương thức videos của SDK chỉ cần đổi base URL. Xếp hàng, kiểm tra, tải về một lần, sau đó clip bị xóa.

Đã kiểm tra 6 tháng 11, 2026

Tạo một clip

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")

Mô hình

Mô hìnhPhù hợp cho480p mỗi giây768p mỗi giây1080p mỗi giây
minimax-h3-max-turboNhanh, có âm thanh. Nên bắt đầu với mô hình này.$0.045$0.07$0.14
minimax-h3-maxNhiều bước hơn Turbo để chi tiết mịn hơn, có âm thanh.$0.09$0.14$0.28

Bạn trả theo số giây đã yêu cầu. Cả hai mô hình đều tạo clip 5 đến 15 giây có âm thanh.

Yêu cầu

TrườngNhậnTác dụng
modelBắt buộcMột trong các mã mô hình ở trên.
promptBắt buộc, tối đa 10.000 ký tựNội dung cần quay, gửi đến mô hình đúng như bạn viết. Vượt giới hạn sẽ bị từ chối, không bao giờ bị cắt.
seconds5 đến 15Độ dài clip, dạng số hoặc chuỗi. Mặc định là 5. Giá trị 4 của OpenAI bị từ chối; 8 và 12 thì được.
sizeWIDTHxHEIGHTChọn độ phân giải và tỷ lệ gần nhất. 1280x720 thành 768p ở 16:9, và đó là mức bạn trả tiền.
resolution480p, 768p hoặc 1080pĐặt giá và được ưu tiên hơn size. Mặc định là 768p.
aspect_ratio16:9, 21:9, 4:3, 1:1, 3:4, 9:16Được ưu tiên hơn size. Mặc định là 16:9.

Gửi JSON hoặc dạng multipart mà SDK của OpenAI dùng. Mọi trường khác, như seed, bị bỏ qua và được nêu tên trong x-nokeep-ignored. Trường mang ảnh hoặc clip, như input_reference, bị từ chối với 400 unsupported_input: các mô hình này chỉ làm việc từ văn bản. SDK Python của OpenAI hiển thị cảnh báo ngừng hỗ trợ ở các phương thức videos, nói về dịch vụ video của chính OpenAI. Điều này không ảnh hưởng đến các lệnh gọi tới chúng tôi, và trình kiểm tra kiểu có thể đánh dấu id mô hình.

Các đường dẫn của clip

Đường dẫnTác dụng
POST /v1/videosXếp clip vào hàng đợi và giữ giá của nó.
GET /v1/videos/{id}Cho biết clip đang ở đâu. Kiểm tra vài giây một lần.
GET /v1/videos/{id}/contentTệp mp4. Chỉ dùng được một lần, sau đó clip bị xóa khỏi máy chủ của mô hình. Nếu tải bị gián đoạn, hãy yêu cầu lại.
DELETE /v1/videos/{id}Xóa một clip đã xong mà không tải về. Clip vẫn đang render sẽ nhận 409 video_not_ready.
GET /v1/videosCác clip gần đây của tài khoản.

Đối tượng clip

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 là queued, in_progress, completed hoặc failed.
  • progress là 0 cho đến khi clip xong, rồi thành 100. Mô hình không báo gì ở giữa.
  • size được tính từ độ phân giải và tỷ lệ, nên tệp có thể lệch vài pixel.

Bạn trả gì

  • Toàn bộ giá clip được giữ khi clip vào hàng đợi, trừ vào tín dụng đã mua và giới hạn hằng ngày của khóa.
  • Được tính khi clip xong, dù bạn có tải về hay không.
  • Clip bị lỗi không tốn gì, và trạng thái của nó cho biết điều đó.

Clip được lưu ở đâu

Clip đã xong nằm chờ trên máy chủ của mô hình, ở tầng riêng tư, tối đa 23 giờ. Nó bị xóa ở đó sau lần tải duy nhất, hoặc khi bạn xóa. Chúng tôi không bao giờ giữ tệp, và quá thời gian đó nó trả về 410 video_gone. Dòng dữ liệu của chúng tôi về clip gồm mã, khóa, mô hình, độ dài, độ phân giải, tỷ lệ, tín dụng và thời gian, không bao giờ có prompt. Dòng này bị xóa sau 48 giờ.

Nội dung, giới hạn và lỗi

Bốn giới hạn cứng vẫn được giữ: nội dung tình dục liên quan đến trẻ vị thành niên, nội dung tình dục về người thật, gây thiệt hại hàng loạt và nhắm vào một người thật. Prompt vi phạm một trong số đó nhận 422 hard_limit và không tốn gì. Nhà cung cấp của mô hình cũng có thể từ chối yêu cầu, đó là 422 content_refused, cũng miễn phí. Xem Giới hạn cứng.

Một khóa có thể xếp 20 clip mỗi phút, trong tổng 120 yêu cầu, và có 10 clip render cùng lúc. Vượt mức đó sẽ nhận 429 rate_limited. Trang lỗi liệt kê mọi mã.

Để kiểm tra mã mà không tốn gì, hãy gửi sk-nokeep-test làm khóa. Khóa này chạy mọi bước kiểm tra, báo clip đã xong ngay lập tức với video_test, và tệp của nó rỗng.