Skip to Content

Przesyłanie wideo

Przesyłanie wideo realizujesz przez wysłanie żądania PUT do endpointu /videos/upload, aby utworzyć nowy obiekt wideo. W odpowiedzi otrzymasz podpisany adres URL S3, pod który możesz wgrać plik wideo.

Tworzenie wideo wymaga uprawnienia videos.create. Ustawienie visibility na public wymaga też videos.publish. Bez publish wideo jest tworzone jako private. Zobacz Uwierzytelnianie.

Utworzenie obiektu wideo

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"}'

Jeśli wideo zawiera mówioną treść i chcesz, aby automatyczna transkrypcja AI uruchomiła się zaraz po kodowaniu wideo, możesz przy żądaniu PUT tworzącym nowe wideo przekazać dwa dodatkowe parametry:

{ ..., "language": string, // "de-DE" | "..." locale of the spoken language "autoTranscribe": true }

Odpowiedź

{ "videoId": "[VIDEO_ID]", "title": "Your video title", "signedUrl": "[SIGNED_URL]", }

Przesłanie pliku wideo

Prześlij plik wideo jako żądanie PUT na podpisany adres URL z poprzedniego kroku. Musisz przekazać typ MIME pliku w nagłówku Content-Type. Typ MIME możesz odczytać z lokalnego pliku wideo przez element file input.

Dla dużych plików (powyżej 100 MB) zalecamy multipart upload, który jest bardziej niezawodny i obsługuje pliki do 60 GB. Możesz też użyć biblioteki Uppy dla prostszej implementacji z automatycznym dzieleniem na fragmenty i śledzeniem postępu.

curl -X PUT [SIGNED_URL] \ -H "Content-Type: [MIME_TYPE]" \ --data-binary "@[PATH_TO_VIDEO_FILE]"

Proces kodowania

Po wgraniu pliku wideo rozpoczyna się kodowanie. Może to chwilę potrwać — zależy to od rozmiaru wideo i złożoności kodowania.

Status kodowania sprawdzisz przez GET /api/videos/[VIDEO_ID], zgodnie z sekcją pobierz wideo. Interwał odpytywania co kilka sekund zwykle wystarczy. Podczas kodowania status to PROGRESSING, a statusProgress to procent od 0 do 100.

Przykładowe pola podczas kodowania:

{ "id": "[VIDEO_ID]", "status": "PROGRESSING", "statusProgress": 36, "errorCode": null, "errorMessage": null }

Gdy kodowanie się powiedzie, status przechodzi na COMPLETE, statusProgress wynosi 100, a źródła odtwarzania są dostępne w src.

Gdy kodowanie się nie powiedzie, status przechodzi na ERROR. Do obsługi programowej użyj errorCode, a errorMessage traktuj jako czytelny zapasowy opis. Zobacz Status kodowania po pełny cykl życia, wartości statusu i kody błędów.

Możesz też subskrybować webhooki video.updated zamiast odpytywać API. Aktualizacje postępu mogą często wysyłać się podczas kodowania. Zobacz Webhooks.