Skip to Content
Référence APIVidéosRemplacer fichier vidéo

Remplacer une vidéo

Pour remplacer un fichier vidéo, envoie une requête PUT à l’endpoint /videos/upload/[VIDEO_ID]. Tu recevras une réponse contenant une URL S3 signée pour télécharger le fichier vidéo. Définis useMultipart sur true dans le corps JSON lorsque tu veux un téléchargement multipart à la place. La réponse contient alors multipartUpload à la place de signedUrl. Voir Téléchargement multipart.

Lors du remplacement, tous les anciens fichiers vidéo de cette vidéo seront supprimés ou écrasés. Le remplacement est irréversible.

Obtenir l’URL signée

curl -X PUT https://app.ignitevideo.cloud/api/videos/upload/[VIDEO_ID] \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"useMultipart": false}'

Réponse

Un téléchargement en un seul fichier renvoie signedUrl. Cette URL expire après 1 heure.

{ "videoId": "[VIDEO_ID]", "signedUrl": "[SIGNED_URL]" }

Avec useMultipart: true, la réponse est videoId plus multipartUpload :

{ "videoId": "[VIDEO_ID]", "multipartUpload": { "uploadId": "[UPLOAD_ID]", "key": "[S3_KEY]" } }

Erreurs

Une vidéo manquante renvoie 400 :

{ "error": "not_found" }

Un id qui n’est pas 24 caractères hexadécimaux renvoie 400 :

{ "error": "invalid_video_id" }

Télécharger le fichier vidéo

Envoie ton fichier vidéo en requête PUT vers l’URL signée renvoyée à l’étape précédente. Tu dois indiquer le type MIME du fichier dans l’en-tête Content-Type. Tu peux obtenir le type MIME depuis ton fichier vidéo local via l’élément input de type fichier.

curl -X PUT [SIGNED_URL] \ -H "Content-Type: [MIME_TYPE]" \ --data-binary "@[PATH_TO_VIDEO_FILE]"

Processus d’encodage

Une fois le fichier de remplacement téléchargé, l’encodage démarre. Pendant le flux de remplacement, status peut brièvement valoir REPLACING avant de passer à PROGRESSING. Ce processus peut prendre du temps, selon la taille de la vidéo et la complexité de l’encodage.

Interroge le statut d’encodage avec GET /api/videos/[VIDEO_ID] comme décrit dans Obtenir une vidéo. Un intervalle de sondage de quelques secondes suffit généralement. Pendant l’encodage, status vaut PROGRESSING et statusProgress est un pourcentage de 0 à 100.

Exemple de champs pendant l’encodage :

{ "id": "[VIDEO_ID]", "status": "PROGRESSING", "statusProgress": 36, "errorCode": null, "errorMessage": null }

Si l’encodage réussit, status devient COMPLETE, statusProgress vaut 100, et les sources de lecture sont disponibles sous src.

Si l’encodage échoue, status devient ERROR. Utilise errorCode pour le traitement programmatique et errorMessage comme repli lisible. Voir Statut d’encodage pour le cycle de vie complet, les valeurs de statut et les codes d’erreur.

Tu peux aussi t’abonner aux webhooks video.updated au lieu d’interroger l’API. Les mises à jour de progression peuvent se déclencher souvent pendant l’encodage. Voir Webhooks.