Reemplazar un video
Reemplazar el archivo de un video se realiza enviando una solicitud PUT al endpoint /videos/upload/[VIDEO_ID].
Recibirás una respuesta con una URL firmada de S3 para subir el archivo de video. Establece useMultipart en true en el cuerpo JSON cuando quieras una subida multiparte. La respuesta contiene entonces multipartUpload en lugar de signedUrl. Consulta Subida multiparte.
Al reemplazar un video, todos los archivos antiguos de ese video se eliminarán o sobrescribirán. El reemplazo es irreversible.
Obtener URL firmada
CURL
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}'Respuesta
Una subida de un solo archivo devuelve signedUrl. Esa URL caduca al cabo de 1 hora.
{
"videoId": "[VIDEO_ID]",
"signedUrl": "[SIGNED_URL]"
}Con useMultipart: true la respuesta es videoId más multipartUpload:
{
"videoId": "[VIDEO_ID]",
"multipartUpload": {
"uploadId": "[UPLOAD_ID]",
"key": "[S3_KEY]"
}
}Errores
Un video inexistente devuelve 400:
{
"error": "not_found"
}Un id que no tiene 24 caracteres hexadecimales devuelve 400:
{
"error": "invalid_video_id"
}Subir archivo de video
Sube el archivo de video con una solicitud PUT a la URL firmada que devolvió el paso anterior.
Debes enviar el tipo MIME del archivo en la cabecera Content-Type. Puedes obtener el tipo MIME del video local mediante el elemento input de tipo archivo.
CURL
curl -X PUT [SIGNED_URL] \
-H "Content-Type: [MIME_TYPE]" \
--data-binary "@[PATH_TO_VIDEO_FILE]"Proceso de codificación
Después de subir el archivo de reemplazo, comienza la codificación. Durante el flujo de reemplazo, status puede ser brevemente REPLACING antes de pasar a PROGRESSING. Este proceso puede tardar un tiempo, según el tamaño del video y la complejidad de la codificación.
Consulta el estado de codificación con GET /api/videos/[VIDEO_ID] como se describe en obtener vídeo. Un intervalo de sondeo de unos pocos segundos suele ser suficiente. Mientras la codificación está en curso, status es PROGRESSING y statusProgress es un porcentaje de 0 a 100.
Ejemplo de campos durante la codificación:
{
"id": "[VIDEO_ID]",
"status": "PROGRESSING",
"statusProgress": 36,
"errorCode": null,
"errorMessage": null
}Cuando la codificación tiene éxito, status pasa a COMPLETE, statusProgress es 100, y las fuentes de reproducción están disponibles en src.
Cuando la codificación falla, status pasa a ERROR. Usa errorCode para el manejo programático y errorMessage como respaldo legible. Consulta Estado de codificación para el ciclo de vida completo, los valores de estado y los códigos de error.
También puedes suscribirte a los webhooks video.updated en lugar de hacer polling. Las actualizaciones de progreso pueden dispararse con frecuencia durante la codificación. Consulta Webhooks.