Objets
Les objets renvoyés par l’API. Les champs marqués « obligatoire » sont toujours présents, éventuellement à null.
Organization
| Champ | Type | Détails |
|---|---|---|
| idobligatoire | string | UUID |
| nameobligatoire | string | — |
| slugobligatoire | string | — |
| statusobligatoire | "active" | "suspended" | "closed" | — |
| allowedOriginsobligatoire | string[] | — |
| limitsobligatoire | object | — |
| limits.maxStorageBytesobligatoire | integer | null | — |
| limits.maxUploadBytesobligatoire | integer | null | — |
| limits.maxVideoDurationSecondsobligatoire | integer | null | — |
| apiKeyobligatoire | object | — |
| apiKey.prefixobligatoire | string | — |
| apiKey.scopesobligatoire | string[] | — |
| apiKey.expiresAtobligatoire | string | null | Date et heure ISO 8601 |
Usage
| Champ | Type | Détails |
|---|---|---|
| fromobligatoire | string | — |
| toobligatoire | string | — |
| storageobligatoire | object | — |
| storage.reservedBytesobligatoire | integer | Mesuré à l’instant : vidéos stockées et envois en cours |
| totalsobligatoire | object | — |
| totals.uploadedBytesobligatoire | integer | — |
| totals.encodingSecondsobligatoire | integer | — |
| totals.deliveredBytesobligatoire | integer | — |
| totals.segmentRequestsobligatoire | integer | — |
| totals.playbackTokensobligatoire | integer | — |
| totals.apiRequestsobligatoire | integer | — |
| daysobligatoire | object[] | — |
| days[].dayobligatoire | string | — |
| days[].uploadedBytesobligatoire | integer | — |
| days[].encodingSecondsobligatoire | integer | — |
| days[].deliveredBytesobligatoire | integer | — |
| days[].segmentRequestsobligatoire | integer | — |
| days[].playbackTokensobligatoire | integer | — |
| days[].apiRequestsobligatoire | integer | — |
| notesobligatoire | string[] | Ce qui est mesuré et à quelle fréquence |
Video
| Champ | Type | Détails |
|---|---|---|
| idobligatoire | string | UUID |
| titleobligatoire | string | — |
| descriptionobligatoire | string | null | — |
| statusobligatoire | "pending_upload" | "uploaded" | "queued" | "processing" | "ready" | "failed" | "cancelled" | "deleting" | "deleted" | — |
| externalRefobligatoire | string | null | Votre propre référence (par exemple l’identifiant de la leçon) |
| durationSecondsobligatoire | integer | null | — |
| widthobligatoire | integer | null | — |
| heightobligatoire | integer | null | — |
| renditionsobligatoire | string[] | Par exemple ["1080p", "720p"] |
| captions | string[] | Langues des sous-titres (réponses portant sur une seule vidéo) |
| playbackDisabledobligatoire | boolean | — |
| errorobligatoire | string | null | Explication exploitable quand le statut est failed |
| createdAtobligatoire | string | Date et heure ISO 8601 |
| updatedAtobligatoire | string | Date et heure ISO 8601 |
Upload
| Champ | Type | Détails |
|---|---|---|
| idobligatoire | string | UUID |
| videoIdobligatoire | string | UUID |
| statusobligatoire | "pending" | "completed" | "cancelled" | "expired" | — |
| typeobligatoire | "single" | "multipart" | — |
| methodobligatoire | "PUT" | — |
| contentTypeobligatoire | string | — |
| sizeobligatoire | integer | — |
| receivedSizeobligatoire | integer | null | — |
| expiresAtobligatoire | string | Date et heure ISO 8601 |
| completedAtobligatoire | string | null | Date et heure ISO 8601 |
| createdAtobligatoire | string | Date et heure ISO 8601 |
| url | string | Envoi unique : URL signée pour le PUT (valable 1 h) |
| headers | object | En-têtes à envoyer avec le PUT |
| partSize | integer | — |
| partCount | integer | — |
| parts | object[] | — |
| parts[].partNumberobligatoire | integer | — |
| parts[].urlobligatoire | string | — |
| uploadedParts | object[] | — |
| uploadedParts[].partNumberobligatoire | integer | — |
| uploadedParts[].etagobligatoire | string | — |
| uploadedParts[].sizeobligatoire | integer | — |
PlaybackToken
| Champ | Type | Détails |
|---|---|---|
| tokenobligatoire | string | — |
| sessionIdobligatoire | string | Sert à révoquer le lien |
| expiresAtobligatoire | integer | Secondes UNIX |
| embedUrlobligatoire | string | À placer dans une <iframe> ; ajoutez &start=<secondes> pour reprendre |
| hlsUrlobligatoire | string | Pour les lecteurs natifs |
PlaybackSession
| Champ | Type | Détails |
|---|---|---|
| idobligatoire | string | UUID |
| videoIdobligatoire | string | UUID |
| externalRefobligatoire | string | null | Référence externe de la vidéo |
| viewerRefobligatoire | string | null | Votre référence pseudonyme de l’apprenant, si vous en avez envoyé une |
| createdAtobligatoire | string | — |
| expiresAtobligatoire | string | — |
| revokedAtobligatoire | string | null | — |
| progressobligatoire | object | null | Null tant que le lecteur n’a rien envoyé. Mesure du navigateur : indicative |
| progress.startedAtobligatoire | string | null | — |
| progress.lastEventAtobligatoire | string | — |
| progress.durationSecondsobligatoire | number | — |
| progress.lastPositionobligatoire | number | Point de reprise |
| progress.maxPositionobligatoire | number | — |
| progress.watchedSecondsobligatoire | number | Temps de lecture, borné par le temps réel (vitesse 2× au plus) |
| progress.coveragePercentobligatoire | integer | Part de la vidéo lue au moins une fois (100 tranches) |
| progress.completedobligatoire | boolean | coveragePercent a atteint 90 |
| progress.completedAtobligatoire | string | null | — |
| progress.eventsobligatoire | integer | — |
| progress.errorsobligatoire | integer | — |
Webhook
| Champ | Type | Détails |
|---|---|---|
| idobligatoire | string | UUID |
| urlobligatoire | string | — |
| descriptionobligatoire | string | null | — |
| eventsobligatoire | ("video.uploaded" | "video.processing" | "video.ready" | "video.failed" | "video.deleted" | "organization.quota_warning" | "playback.completed")[] | — |
| statusobligatoire | "active" | "disabled" | — |
| disabledReasonobligatoire | string | null | — |
| consecutiveFailuresobligatoire | integer | — |
| previousSecretExpiresAtobligatoire | string | null | Date et heure ISO 8601 |
| createdAtobligatoire | string | Date et heure ISO 8601 |
| updatedAtobligatoire | string | Date et heure ISO 8601 |
| secret | string | Secret de signature, renvoyé uniquement à la création et au remplacement |
WebhookDelivery
| Champ | Type | Détails |
|---|---|---|
| idobligatoire | string | UUID |
| eventIdobligatoire | string | UUID |
| eventTypeobligatoire | string | — |
| statusobligatoire | "pending" | "sending" | "succeeded" | "dead" | — |
| attemptsobligatoire | integer | — |
| nextAttemptAtobligatoire | string | null | Date et heure ISO 8601 |
| lastStatusCodeobligatoire | integer | null | — |
| lastErrorobligatoire | string | null | — |
| deliveredAtobligatoire | string | null | Date et heure ISO 8601 |
| createdAtobligatoire | string | Date et heure ISO 8601 |
VideoUsage
| Champ | Type | Détails |
|---|---|---|
| videoIdobligatoire | string | UUID |
| fromobligatoire | string | — |
| toobligatoire | string | — |
| totalsobligatoire | object | — |
| totals.deliveredBytesobligatoire | integer | — |
| totals.requestsobligatoire | integer | — |
| totals.playbackSessionsobligatoire | integer | — |
| engagementobligatoire | object | Mesuré par le lecteur : indicatif, jamais facturé |
| engagement.sessionsStartedobligatoire | integer | — |
| engagement.sessionsCompletedobligatoire | integer | Sessions ayant atteint 90 % de la vidéo |
| engagement.averageCoveragePercentobligatoire | integer | — |
| engagement.watchedSecondsobligatoire | number | — |
| daysobligatoire | object[] | — |
| days[].dayobligatoire | string | — |
| days[].deliveredBytesobligatoire | integer | — |
| days[].requestsobligatoire | integer | — |
ApiKeyRotation
| Champ | Type | Détails |
|---|---|---|
| apiKeyobligatoire | object | — |
| apiKey.keyobligatoire | string | Nouvelle clé secrète, affichée une seule fois |
| apiKey.prefixobligatoire | string | — |
| apiKey.scopesobligatoire | string[] | — |
| previousKeyobligatoire | object | — |
| previousKey.prefixobligatoire | string | — |
| previousKey.expiresAtobligatoire | string | Date et heure ISO 8601 |