Caricamento dei video
Il caricamento dei video avviene inviando una richiesta PUT all’endpoint /videos/upload per creare un nuovo oggetto video.
Riceverai una risposta con un URL S3 firmato su cui caricare il file video.
Creare un video richiede il permesso videos.create. Impostare visibility su public richiede anche videos.publish. Senza publish, il video viene creato come private. Vedi Autenticazione.
Crea l’oggetto video
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 hai un video con contenuto parlato e vuoi avviare la trascrizione automatica IA subito dopo la codifica del video, puoi farlo impostando due parametri aggiuntivi nella richiesta PUT per creare il nuovo video:
{
...,
"language": string, // "de-DE" | "..." locale of the spoken language
"autoTranscribe": true
}Risposta
{
"videoId": "[VIDEO_ID]",
"title": "Your video title",
"signedUrl": "[SIGNED_URL]",
}Carica il file video
Carica il tuo file video con una richiesta PUT all’URL firmato restituito nel passaggio precedente.
Devi passare il mime type del file come header Content-Type. Puoi ottenere il mime type dal tuo file video locale tramite l’elemento file input.
Per i file di grandi dimensioni (oltre 100MB), consigliamo di usare il multipart upload, che offre maggiore affidabilità e supporta file fino a 60GB. Puoi anche usare la libreria Uppy per un’implementazione più semplice con chunking automatico e monitoraggio dell’avanzamento.
CURL
curl -X PUT [SIGNED_URL] \
-H "Content-Type: [MIME_TYPE]" \
--data-binary "@[PATH_TO_VIDEO_FILE]"Processo di codifica
Dopo il caricamento del file video, inizia la codifica. Questo processo può richiedere del tempo, a seconda della dimensione del video e della complessità della codifica.
Interroga lo stato di codifica con GET /api/videos/[VIDEO_ID] come descritto in ottenere video. Un intervallo di polling di pochi secondi di solito è sufficiente. Mentre la codifica è in corso, status è PROGRESSING e statusProgress è una percentuale da 0 a 100.
Esempio di campi durante la codifica:
{
"id": "[VIDEO_ID]",
"status": "PROGRESSING",
"statusProgress": 36,
"errorCode": null,
"errorMessage": null
}Quando la codifica ha successo, status diventa COMPLETE, statusProgress è 100 e le sorgenti di riproduzione sono disponibili in src.
Quando la codifica fallisce, status diventa ERROR. Usa errorCode per la gestione programmatica e errorMessage come fallback leggibile. Vedi Stato di codifica per il ciclo di vita completo, i valori di stato e i codici di errore.
Puoi anche iscriverti ai webhook video.updated invece di fare polling. Gli aggiornamenti di progresso possono scattare spesso durante la codifica. Vedi Webhooks.