Справочник
POST /v1/videos
Сделайте клип со звуком из текстового промпта в формате OpenAI: методы videos из SDK работают, если поменять только базовый URL. Поставьте в очередь, проверьте, скачайте один раз — и он удаляется.
Проверено 6 ноября 2026 г.
Сделайте клип
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 |
Оплачиваете секунды, которые заказали. Обе модели делают клипы от 5 до 15 секунд со звуком.
Запрос
| Поле | Принимает | Что делает |
|---|---|---|
model | Обязательно | Один из идентификаторов моделей выше. |
prompt | Обязательно, до 10 000 символов | Что снимать, передаётся модели как написано. Длиннее лимита — отказ, промпт никогда не обрезается. |
seconds | От 5 до 15 | Длина клипа, числом или строкой. По умолчанию 5. Значение 4 из OpenAI отклоняется; 8 и 12 работают. |
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 или multipart-форму, которую используют SDK OpenAI. Любое другое поле, например seed, отбрасывается и называется в x-nokeep-ignored. Поле, которое несёт картинку или клип, например input_reference, отклоняется с 400 unsupported_input: эти модели работают только с текстом. Python SDK от OpenAI выводит предупреждение об устаревании в методах videos: оно касается собственного видеосервиса OpenAI. На вызовы к нам это не влияет, а проверка типов может отметить id модели.
Маршруты клипа
| Маршрут | Что делает |
|---|---|
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равен 0, пока клип не готов, а затем 100. Между ними модель ничего не сообщает.sizeвычисляется из разрешения и пропорций, поэтому файл может отличаться на несколько пикселей.
Что вы платите
- Полная цена клипа резервируется, когда он ставится в очередь, из купленных кредитов и дневного лимита ключа.
- Списывается, когда клип готов, скачали вы его или нет.
- Клип, который не удался, ничего не стоит, и это видно в его статусе.
Где хранится клип
Готовый клип ждёт на хосте модели, на её приватном уровне, до 23 часов. После единственного скачивания или при удалении его там больше нет. Файл мы не храним, а по истечении срока API отвечает 410 video_gone. Наша собственная строка о клипе хранит его id, ключ, модель, длину, разрешение, пропорции, кредиты и время, но никогда промпт. Она удаляется через 48 часов.
Контент, лимиты и ошибки
Четыре жёстких ограничения остаются: сексуальный контент с участием несовершеннолетних, сексуальный контент о реальных людях, вред массового поражения и нападение на реального человека. Промпт, который их переступает, получает 422 hard_limit и ничего не стоит. Хост модели тоже может отказать в запросе: это 422 content_refused, тоже бесплатно. См. Жёсткие ограничения.
Ключ может ставить в очередь 20 клипов в минуту, в пределах своих 120 запросов в целом, и иметь 10 рендеров одновременно. Сверх этого — 429 rate_limited. На странице ошибок перечислены все коды.
Чтобы проверить код, ничего не тратя, отправьте sk-nokeep-test как ключ. Он проходит все проверки, сразу сообщает, что клип готов, как video_test, а его файл пустой.