Référence de l’API

Lecture

POST/v1/playback-tokens

Lien de lecture signé pour un apprenant (après avoir vérifié ses droits)

Permission playback:write

Corps de la requête

ChampTypeDétails
videoIdobligatoirestringformat ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
viewerstring64 caractères au plus
viewerRefstringformat ^[A-Za-z0-9._:-]{1,128}$
ttlSecondsnumber—

Réponse 200 · Lien de lecture

Exemple
curl -X POST https://api.vidoum.com/v1/playback-tokens \
  -H "Authorization: Bearer $VIDOUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "videoId": "8f2c1d4e-…",
    "viewer": "sara.m@lycee.ma",
    "ttlSeconds": 14400
  }'

GET/v1/playback-sessions

Sessions de lecture avec la progression des apprenants, de la plus récente à la plus ancienne (synchronisation LMS)

Permission playback:write

Paramètres de requête

ChampTypeDétails
limitobligatoireinteger≥ 1 · ≤ 200 · par défaut 50
videoIdstringformat ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
viewerRefstringformat ^[A-Za-z0-9._:-]{1,128}$
activeSincestring40 caractères au plus
completed"true" | "false"—
cursorstring200 caractères au plus · format ^[A-Za-z0-9_-]+$

Réponse 200 · Page de sessions

ChampTypeDétails
sessionsobligatoirePlaybackSession[]—
nextCursorobligatoirestring | null—
Exemple
curl https://api.vidoum.com/v1/playback-sessions \
  -H "Authorization: Bearer $VIDOUM_API_KEY"

GET/v1/playback-sessions/{id}

Une session de lecture et la progression de l’apprenant

Permission playback:write

Paramètres de chemin

ChampTypeDétails
idobligatoirestring (uuid)—

Réponse 200 · Session

ChampTypeDétails
sessionobligatoirePlaybackSession—
Exemple
curl https://api.vidoum.com/v1/playback-sessions/ID \
  -H "Authorization: Bearer $VIDOUM_API_KEY"

POST/v1/playback-events

Événements du lecteur, authentifiés par le lien de lecture (envoyés par le lecteur Vidoum, pas par votre serveur)

Public, sans clé

Corps de la requête

ChampTypeDétails
tokenobligatoirestring10 à 4096 caractères · format ^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$
videoIdobligatoirestringformat ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
eventsobligatoireobject[]1 élément(s) au moins · 50 éléments au plus
events[].seqobligatoireinteger≥ 0 · ≤ 1 000 000
events[].typeobligatoire"started" | "paused" | "resumed" | "progress" | "completed" | "error"—
events[].positionobligatoirenumber≥ 0 · ≤ 86 400
events[].durationnumber≥ 0 · ≤ 86 400
events[].fromnumber≥ 0 · ≤ 86 400
events[].tonumber≥ 0 · ≤ 86 400
events[].code"expired" | "network" | "media" | "unsupported"—
events[].atnumber—

Réponse 204 · Accepté (les doublons sont ignorés)

Exemple
curl -X POST https://api.vidoum.com/v1/playback-events \
  -H "Content-Type: application/json" \
  -d '{
    "token": "…",
    "videoId": "8f2c1d4e-…",
    "events": [
      "video.ready",
      "video.failed"
    ]
  }'

POST/v1/playback-sessions/{id}/revoke

Révoquer un lien de lecture avant son expiration (effectif en 2 minutes environ)

Permission playback:write

Paramètres de chemin

ChampTypeDétails
idobligatoirestring (uuid)—

Corps de la requête

ChampTypeDétails
reasonstring200 caractères au plus

Réponse 200 · Révoqué

ChampTypeDétails
sessionobligatoireobject—
session.idobligatoirestring—
session.revokedAtobligatoirestring—
session.expiresAtobligatoireinteger—
Exemple
curl -X POST https://api.vidoum.com/v1/playback-sessions/ID/revoke \
  -H "Authorization: Bearer $VIDOUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Abonnement résilié"
  }'