Aller au contenu
Toute la documentation

Référence

POST /v1/videos

Créez un clip avec son à partir d’un prompt texte, au format OpenAI : les méthodes videos du SDK fonctionnent en changeant seulement l’URL de base. Mettez-le en file, suivez-le, téléchargez-le une fois, et il est supprimé.

Vérifié le 6 novembre 2026

Créer un 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")

Modèles

ModèlePour480p par seconde768p par seconde1080p par seconde
minimax-h3-max-turboRapide, avec son. Celui par lequel commencer.0,045 $0,07 $0,14 $
minimax-h3-maxPlus d’étapes que Turbo pour un détail plus fin, avec son.0,09 $0,14 $0,28 $

Vous payez les secondes demandées. Les deux modèles font des clips de 5 à 15 secondes avec son.

Requête

ChampValeur attendueCe qu’il fait
modelObligatoireL’un des identifiants de modèle ci-dessus.
promptObligatoire, jusqu’à 10 000 caractèresCe qu’il faut filmer, envoyé au modèle tel quel. Au-delà de la limite, la requête est refusée, jamais tronquée.
seconds5 à 15La durée du clip, en nombre ou en chaîne. La valeur par défaut est 5. Le 4 d’OpenAI est refusé ; 8 et 12 fonctionnent.
sizeWIDTHxHEIGHTChoisit la résolution et le format les plus proches. 1280x720 devient 768p en 16:9, et c’est ce que vous payez.
resolution480p, 768p ou 1080pFixe le prix et l’emporte sur size. La valeur par défaut est 768p.
aspect_ratio16:9, 21:9, 4:3, 1:1, 3:4, 9:16L’emporte sur size. La valeur par défaut est 16:9.

Envoyez du JSON ou le formulaire multipart qu’utilisent les SDK d’OpenAI. Tout autre champ, comme seed, est ignoré et nommé dans x-nokeep-ignored. Un champ qui transporte une image ou un clip, comme input_reference, est refusé avec 400 unsupported_input : ces modèles travaillent à partir de texte seulement. Le SDK Python d’OpenAI affiche un avertissement d’obsolescence sur ses méthodes videos, à propos du service vidéo d’OpenAI. Cela n’affecte pas les appels vers nous, et un vérificateur de types peut signaler l’id du modèle.

Les routes du clip

RouteCe qu’elle fait
POST /v1/videosMet un clip en file et réserve son prix.
GET /v1/videos/{id}Indique où il en est. Vérifiez toutes les quelques secondes.
GET /v1/videos/{id}/contentLe fichier mp4. Il ne fonctionne qu’une fois, puis le clip est supprimé de l’hébergeur du modèle. Si le téléchargement est coupé, redemandez-le.
DELETE /v1/videos/{id}Supprime un clip terminé sans le télécharger. Un clip encore en rendu répond 409 video_not_ready.
GET /v1/videosLes clips récents du compte.

L’objet 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 vaut queued, in_progress, completed ou failed.
  • progress vaut 0 jusqu’à la fin du clip, puis 100. Le modèle n’indique rien entre les deux.
  • size est calculé à partir de la résolution et du format, si bien que le fichier peut différer de quelques pixels.

Ce que vous payez

  • Le prix total du clip est réservé à sa mise en file, sur vos crédits achetés et dans le plafond quotidien de la clé.
  • Il est débité à la fin du clip, que vous le téléchargiez ou non.
  • Un clip en échec ne coûte rien, et son statut l’indique.

Où le clip reste

Un clip terminé attend chez l’hébergeur du modèle, sur son niveau privé, jusqu’à 23 heures. Il y est supprimé après son unique téléchargement, ou quand vous le supprimez. Nous ne gardons jamais le fichier, et passé ce délai, la réponse est 410 video_gone. Notre propre ligne sur un clip contient son identifiant, la clé, le modèle, la durée, la résolution, le format, les crédits et les heures, jamais le prompt. Elle est supprimée après 48 heures.

Contenu, limites et erreurs

Quatre limites strictes restent : contenu sexuel impliquant des mineurs, contenu sexuel de personnes réelles, dommages de masse et viser une personne réelle. Un prompt qui en franchit une reçoit 422 hard_limit et ne coûte rien. L’hébergeur d’un modèle peut aussi refuser une requête : c’est 422 content_refused, également gratuit. Voir Limites strictes.

Une clé peut mettre 20 clips par minute en file, dans sa limite de 120 requêtes au total, et en avoir 10 en rendu à la fois. Au-delà, c’est 429 rate_limited. La page des erreurs liste tous les codes.

Pour tester votre code sans rien dépenser, envoyez sk-nokeep-test comme clé. Elle exécute toutes les vérifications, signale le clip terminé immédiatement comme video_test, et son fichier est vide.