Documentation

Tâches

Créer, suivre, lister et annuler les tâches de nettoyage.

Une tâche est une vidéo en cours de nettoyage. Les crédits sont réservés à la création et rendus si la tâche échoue ou est annulée.

Cycle de vie

Statut Signification
queued Crédits réservés, en attente d'une place de traitement
analyzing Lecture des sous-titres et de la parole
processing Reconstruction et contrôle des images
succeeded La vidéo propre est prête dans result.url
failed Le traitement n'a pas abouti, voir error (crédits rendus)
canceled Arrêtée par vous (crédits rendus)

Pendant le traitement, stage indique l'étape en cours et progress va de 0 à 1. Étapes : queued, preparing, reading_text, downloading, masking, cleaning, verifying, assembling, finalizing, retrying.

Les tâches d'un espace tournent en parallèle jusqu'à la limite de l'offre (2, 5 ou 15). Les suivantes attendent dans la file ; les offres supérieures passent en priorité quand la plateforme est chargée.

Créer une tâche

POST /v1/jobs

Champ Type Description
upload_id texte Un envoi créé avec POST /v1/uploads
video_url texte URL publique de la vidéo (à la place de upload_id)
filename texte Nom d'affichage facultatif
texts liste de textes Facultatif : les textes exacts affichés à effacer. Fournis, ils remplacent l'étape de lecture automatique
metadata objet Facultatif : jusqu'à 20 paires clé valeur (texte), renvoyées avec la tâche et dans les webhooks

Envoyez un en-tête Idempotency-Key pour réessayer sans risque : la même clé renvoie la même tâche au lieu d'en créer une seconde.

curl https://pixamake.ai/v1/jobs \
  -H "Authorization: Bearer $PIXAMAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 0d6c1c5e-62f4-4f57-9c1c-4e6a7c1a2f10" \
  -d '{"upload_id": "up_7Qm2rT9vXk3LpZ8aWn4c", "metadata": {"campagne": "soldes"}}'

L'objet tâche

{
  "id": "job_3kT9xQ2vLm8RfZp1Wq7a",
  "object": "job",
  "status": "succeeded",
  "stage": null,
  "progress": 1,
  "source": "api",
  "input": { "filename": "pub.mp4", "duration_seconds": 30, "width": 1080, "height": 1920, "size_bytes": 4821331 },
  "credits": 75,
  "credits_refunded": false,
  "result": { "url": "https://...", "expires_at": "2026-10-04T14:12:00.000Z", "size_bytes": 5310877 },
  "error": null,
  "metadata": { "campagne": "soldes" },
  "created_at": "2026-10-04T13:05:41.120Z",
  "started_at": "2026-10-04T13:05:42.008Z",
  "finished_at": "2026-10-04T13:09:57.774Z"
}

result.url est un lien de téléchargement valable une heure. Chaque GET /v1/jobs/{id} en renvoie un nouveau. Les fichiers sont gardés pendant la durée de conservation de votre offre (7, 30 ou 90 jours).

Lire une tâche

GET /v1/jobs/{id}. Interrogez toutes les 5 à 10 secondes, ou utilisez les webhooks.

Lister les tâches

GET /v1/jobs?limit=20&status=succeeded&starting_after=job_...

Paramètre Description
limit De 1 à 100, 20 par défaut
status Filtre par statut
starting_after Curseur : l'id de la dernière tâche de la page précédente
{ "object": "list", "data": [ { "id": "job_..." } ], "has_more": true, "next_cursor": "job_..." }

Annuler une tâche

POST /v1/jobs/{id}/cancel arrête une tâche en file ou en cours et rend ses crédits. Une tâche terminée est renvoyée telle quelle.

Codes d'échec

error.code Signification
no_text_found Aucun sous-titre ni incrustation trouvé. Aucun crédit utilisé.
nothing_erased Le moteur n'a pas retrouvé le texte à effacer. Aucun crédit utilisé.
processing_failed Le moteur s'est arrêté sur une erreur. Crédits rendus.
timeout Le traitement a duré trop longtemps et a été arrêté. Crédits rendus.
start_failed La vidéo n'a pas pu être préparée après plusieurs essais. Crédits rendus.