本文へ移動
すべてのドキュメント

リファレンス

POST /v1/videos

テキストのプロンプトから、音声付きの動画を1本作ります。OpenAI形式なので、SDKの videos メソッドはベースURLを変えるだけで使えます。キューに入れ、状態を確認し、一度ダウンロードすると動画は削除されます。

2026年11月6日 確認

動画を生成する

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の1秒あたり768pの1秒あたり1080pの1秒あたり
minimax-h3-max-turbo速く、音声付き。最初に使うならこれ。$0.045$0.07$0.14
minimax-h3-maxTurboより多くのステップで、細部を仕上げます。音声付き。$0.09$0.14$0.28

料金は指定した秒数分です。両モデルとも、音声付きで5〜15秒の動画を作ります。

リクエスト

項目指定する値働き
model必須上に挙げたモデルIDのいずれか。
prompt必須、10,000文字まで撮る内容。そのままモデルに送られます。上限を超えると、切り詰めずに拒否されます。
seconds5〜15動画の長さ。数値でも文字列でも指定できます。既定は5。OpenAIの4は拒否されますが、8と12は使えます。
sizeWIDTHxHEIGHT最も近い解像度と形を選びます。1280x720は16:9の768pになり、その分の料金がかかります。
resolution480p、768p または 1080p料金を決め、size より優先されます。既定は768p。
aspect_ratio16:9、21:9、4:3、1:1、3:4、9:16size より優先されます。既定は16:9。

JSON、または OpenAI の SDK が使う multipart フォームで送ってください。seed など、それ以外の項目は破棄され、x-nokeep-ignored に名前が挙がります。input_reference のように画像や動画を運ぶ項目は、400 unsupported_input で拒否されます。これらのモデルはテキストだけで動くためです。 OpenAI の Python SDK は videos メソッドで、OpenAI 自身の動画サービスに関する非推奨の警告を表示します。当社への呼び出しには影響しません。型チェッカーがモデル ID を指摘することもあります。

動画のルート

ルート働き
POST /v1/videos動画をキューに入れ、料金を確保します。
GET /v1/videos/{id}現在の状態を返します。数秒ごとに確認してください。
GET /v1/videos/{id}/contentmp4です。一度だけ使えて、その後モデルのホストから動画は削除されます。ダウンロードが途中で切れたら、もう一度頼んでください。
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 は、完成するまで0で、完成すると100になります。途中の値はモデルが報告しません。
  • size は解像度と形から計算されるため、ファイルは数ピクセル違うことがあります。

支払い

  • 動画の全額料金は、キューに入った時点で、購入済みのクレジットとキーの1日の上限に対して確保されます。
  • 完成した時点で課金されます。ダウンロードするかどうかは関係ありません。
  • 失敗した動画は無料で、その状態にもそう示されます。

動画の保管場所

完成した動画は、モデルのホストの非公開層に最長23時間残ります。一度だけダウンロードするか削除すると、そこから消えます。当社はファイルを保持せず、その時間を過ぎると 410 video_gone を返します。動画に関する当社の行には、ID、キー、モデル、長さ、解像度、形、クレジット、時刻が入り、プロンプトは入りません。その行は48時間後に削除されます。

コンテンツ、上限、エラー

4つのハード制限は残ります。未成年者の性的なコンテンツ、実在の人物の性的なコンテンツ、大量殺傷につながる危害、実在の人物への攻撃です。これに当たるプロンプトは 422 hard_limit になり、料金はかかりません。モデルのホストがリクエストを拒否することもあり、それは 422 content_refused で、これも無料です。詳しくはハード制限を参照してください。

1つのキーで毎分20本の動画をキューに入れられ、全体では120リクエストの上限内に収まり、同時に10本までレンダリングできます。超えると 429 rate_limited になります。すべてのコードはエラーページにあります。

料金をかけずにコードを確認するには、キーとして sk-nokeep-test を送ってください。すべてのチェックを通り、動画は即座に完成したと video_test として報告されます。そのファイルは空です。