Documentation

Générer des vidéos

POST /v1/video/generations

Soumet une tâche vidéo et renvoie immédiatement un task_id. Le rendu prend en général une à cinq minutes selon le modèle, la durée et la résolution. Le chemin et la forme de la réponse suivent le canal vidéo de new-api : les passerelles de relais peuvent donc brancher la plateforme telle quelle comme fournisseur vidéo.

Paramètres

ParamètreTypeDescription
promptstringObligatoire. Ce qu’il faut générer
modelstringid de modèle issu de /v1/models. Sinon, modèle par défaut
modestringtext (par défaut) ou image
durationintegerDurée en secondes, ramenée dans min_sec – max_sec du palier choisi
resolutionstring480p | 720p | 1080p | 4k. Remplacée par spec
ratiostringadaptive | landscape | portrait | 16:9 | 9:16 | 4:3 | 3:4 | 1:1 | 21:9. Sans valeur, width/height déterminent l’orientation ; à défaut, adaptive. Toute autre valeur déclenche une erreur. Les formats acceptés par le modèle choisi figurent dans aspect_ratios de /v1/models
width / heightintegerÉcriture en pixels, utilisée seulement en l’absence de ratio pour choisir entre paysage et portrait. Des valeurs égales retombent sur adaptive
specstringClé de palier. Détermine la résolution et le tarif par seconde
imagestringURL de la première image, utilisée avec mode=image
image_laststringURL de la dernière image. Avec image, cela active le mode première/dernière image
reference_imagesstring[]Images de référence pour la cohérence du sujet
reference_videosstring[]URLs publiques des vidéos de référence, alignées par indice avec reference_video_durations
reference_video_durationsnumber[]Durée en secondes de chaque vidéo de référence ; chaque valeur doit être un nombre positif détectable
reference_audiosstring[]URLs publiques des audios de référence, alignées par indice avec reference_audio_durations
reference_audio_durationsnumber[]Durée en secondes de chaque audio de référence ; chaque valeur doit être un nombre positif détectable
Avec mode=image, il faut fournir image ou reference_images ; les deux vides constituent une erreur. La vidéo et l’audio de référence dépendent des capacités du modèle. Si reference_media_max_sec>0, chaque média concerné exige une durée positive détectable ; la tarification à la seconde des vidéos de référence exige aussi reference_video_durations. Les entrées non prises en charge ou hors limite sont explicitement refusées. n supérieur à 1 est refusé également : la vidéo est facturée et limitée par clip, envoyez donc des requêtes séparées.

Requête

bash
curl https://open.pikpikgo.com/v1/video/generations \
  -H "Authorization: Bearer $PIKPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "travelling avant lent, une jeune fille se retourne et sourit",
    "mode": "text",
    "duration": 5,
    "resolution": "720p"
  }'

Réponse

json
{
  "task_id": "2608101915300490318827",
  "id": "2608101915300490318827",
  "object": "video",
  "model": "video-pro-1",
  "created_at": 1786000530,
  "status": "processing",
  "url": "",
  "format": "",
  "metadata": {
    "duration": 5,
    "resolution": "720p",
    "ratio": "adaptive"
  },
  "error": null,
  "credits": 60,
  "prompt": "travelling avant lent, une jeune fille se retourne et sourit"
}

status processing signifie que la tâche est parvenue au moteur de rendu. Interrogez le point d’accès ci-dessous avec le task_id renvoyé. En cas d’échec du rendu, les crédits sont remboursés automatiquement.

Consulter une tâche vidéo

GET /v1/video/generations/{task_id} — les tâches vidéo s’interrogent ici, et non sur /v1/tasks/{id} (celui-ci ne sert que l’image). La forme est celle de la réponse de soumission ; une fois la tâche terminée, url est le clip rendu et format son conteneur.

bash
curl https://open.pikpikgo.com/v1/video/generations/2608101915300490318827 \
  -H "Authorization: Bearer $PIKPIK_API_KEY"
json
{
  "task_id": "2608101915300490318827",
  "id": "2608101915300490318827",
  "object": "video",
  "model": "video-pro-1",
  "created_at": 1786000530,
  "status": "succeeded",
  "url": "https://cdn.pikpikgo.com/video/2608101915300490318827.mp4",
  "format": "mp4",
  "metadata": {
    "duration": 5,
    "resolution": "720p",
    "ratio": "adaptive"
  },
  "error": null,
  "credits": 60,
  "prompt": "travelling avant lent, une jeune fille se retourne et sourit"
}
error vaut null en cas de succès, pas une chaîne vide — testez l’échec avec status ou error !== null. Une tâche n’est lisible que par le compte qui l’a créée ; la tâche d’autrui et une tâche qui n’a jamais existé renvoient exactement le même 404.