Subir vídeos
Para subir vídeos, envía una solicitud PUT al endpoint /videos/upload y crea un objeto de vídeo nuevo.
Recibirás una respuesta con una URL firmada de S3 a la que subir el archivo de vídeo.
Crear un vídeo requiere el permiso videos.create. Establecer visibility en public también requiere videos.publish. Sin publish, el vídeo se crea como private. Consulta Autenticación.
title es obligatorio. Se recorta y se corta a 100 caracteres. Una actualización permite 150 caracteres. Consulta Actualizar un vídeo.
El cuerpo JSON también acepta:
| Campo | Notas |
|---|---|
description | Máximo 2000 caracteres. |
visibility | public requiere videos.publish. Si no, el vídeo se guarda como private. |
categories | 10 ids como máximo. Los ids desconocidos se descartan. A una clave con alcance que no recibe categorías se le asignan las categorías de su alcance, hasta 10. |
tags | 20 ids como máximo. Los ids desconocidos se descartan. |
language | Configuración regional del idioma hablado, por ejemplo de-DE. Obligatoria cuando autoTranscribe es true. |
autoTranscribe | Inicia la transcripción con IA después de la codificación. |
customMetadata | Objeto plano de clave-valor. Consulta el objeto de video. |
duration | Indicación opcional en segundos. La codificación la sobrescribe. |
fps | Indicación opcional. La codificación la sobrescribe. |
orientation | landscape o portrait. La codificación la sobrescribe. |
useMultipart | Devuelve identificadores de subida multiparte en lugar de signedUrl. |
El cuerpo JSON no tiene el campo mimeType. Envía el tipo MIME del archivo como encabezado Content-Type en la subida a la URL firmada del paso siguiente.
Crear objeto de vídeo
CURL
curl -X PUT https://app.ignitevideo.cloud/api/videos/upload \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Your video title", "visibility": "private" | "public"}'Si tienes un vídeo con texto hablado y quieres que la transcripción automática de IA empiece justo después de la codificación, puedes hacerlo estableciendo dos parámetros adicionales en la solicitud PUT que crea el vídeo nuevo:
{
...,
"language": string, // "de-DE" | "..." locale of the spoken language
"autoTranscribe": true
}Respuesta
signedUrl caduca al cabo de 1 hora. Para una subida multiparte, establece useMultipart en true. La respuesta contiene entonces multipartUpload en lugar de signedUrl. Consulta Subida multiparte.
{
"videoId": "[VIDEO_ID]",
"title": "Your video title",
"signedUrl": "[SIGNED_URL]"
}Subir archivo de vídeo
Sube tu archivo de vídeo con una solicitud PUT a la URL firmada que recibiste en el paso anterior.
Debes pasar el tipo MIME del archivo en el encabezado Content-Type. Puedes obtener el tipo MIME de tu archivo de vídeo local mediante el elemento de entrada de archivo.
Para archivos grandes (más de 100 MB), recomendamos usar subida multiparte, que ofrece mayor fiabilidad y admite archivos de hasta 60 GB. También puedes usar la biblioteca Uppy para una implementación más sencilla con fragmentación automática y seguimiento del progreso.
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 vídeo, comienza la codificación. Este proceso puede tardar un tiempo, según el tamaño del vídeo 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.