Skip to Content

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:

CampoNotas
descriptionMáximo 2000 caracteres.
visibilitypublic requiere videos.publish. Si no, el vídeo se guarda como private.
categories10 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.
tags20 ids como máximo. Los ids desconocidos se descartan.
languageConfiguración regional del idioma hablado, por ejemplo de-DE. Obligatoria cuando autoTranscribe es true.
autoTranscribeInicia la transcripción con IA después de la codificación.
customMetadataObjeto plano de clave-valor. Consulta el objeto de video.
durationIndicación opcional en segundos. La codificación la sobrescribe.
fpsIndicación opcional. La codificación la sobrescribe.
orientationlandscape o portrait. La codificación la sobrescribe.
useMultipartDevuelve 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 -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 -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.