Carregar vídeos
Para carregar vídeos, envia um pedido PUT para o endpoint /videos/upload para criares um novo objeto de vídeo.
Vais receber uma resposta com um URL S3 assinado para carregares o ficheiro de vídeo.
Criar um vídeo exige a permissão videos.create. Definir visibility como public também exige videos.publish. Sem publish, o vídeo é criado como private. Consulta Autenticação.
Criar 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"}'Se tens um vídeo com conteúdo falado e queres que a autotranscrição por IA comece logo após a codificação do vídeo, podes fazê-lo definindo dois parâmetros adicionais no pedido PUT para criares o novo vídeo:
{
...,
"language": string, // "de-DE" | "..." locale of the spoken language
"autoTranscribe": true
}Resposta
{
"videoId": "[VIDEO_ID]",
"title": "Your video title",
"signedUrl": "[SIGNED_URL]",
}Carregar ficheiro de vídeo
Carrega o teu ficheiro de vídeo com um pedido PUT para o URL assinado devolvido no passo anterior.
Tens de passar o tipo MIME do ficheiro no cabeçalho Content-Type. Podes obter o tipo MIME a partir do teu ficheiro de vídeo local através do elemento de input de ficheiro.
Para ficheiros grandes (mais de 100 MB), recomendamos usar multipart upload, que oferece maior fiabilidade e suporta ficheiros até 60 GB. Também podes usar a biblioteca Uppy para uma implementação mais simples com fragmentação automática e acompanhamento do progresso.
CURL
curl -X PUT [SIGNED_URL] \
-H "Content-Type: [MIME_TYPE]" \
--data-binary "@[PATH_TO_VIDEO_FILE]"Processo de codificação
Depois de o ficheiro de vídeo ter sido carregado, inicia-se a codificação. Este processo pode demorar algum tempo, consoante o tamanho do vídeo e a complexidade da codificação.
Consulta o estado da codificação com GET /api/videos/[VIDEO_ID], conforme descrito em obter vídeo. Um intervalo de polling de alguns segundos costuma ser suficiente. Enquanto a codificação decorre, status é PROGRESSING e statusProgress é uma percentagem de 0 a 100.
Exemplo de campos durante a codificação:
{
"id": "[VIDEO_ID]",
"status": "PROGRESSING",
"statusProgress": 36,
"errorCode": null,
"errorMessage": null
}Quando a codificação tem sucesso, status passa a COMPLETE, statusProgress é 100, e as fontes de reprodução ficam disponíveis em src.
Quando a codificação falha, status passa a ERROR. Usa errorCode para tratamento programático e errorMessage como alternativa legível. Consulta Estado de codificação para o ciclo de vida completo, os valores de estado e os códigos de erro.
Também podes subscrever webhooks video.updated em vez de fazer polling. As atualizações de progresso podem disparar-se com frequência durante a codificação. Consulta Webhooks.