API Vidéo — Endpoints REST pour la Gestion Vidéo Programmatique

API Vidéo

AVCaption livre une API REST pour la gestion vidéo programmatique. Disponible sur le plan Enterprise ; accès en preview pour Premium sur demande.

Authentification

Deux méthodes :

Bearer token (JWT) — émis à la connexion, envoyé en en-tête Authorization: Bearer <token>. Utilisé par vos sessions de dashboard authentifiées.

Clé API — générée dans votre page de paramètres. Format avc_<64 caractères hex>. Envoyée en en-tête X-API-Key: <key> ou en query param ?api_key=<key>. Utile pour le serveur-à-serveur.

Endpoints

GET    /api/v1/videos               Liste des vidéos (paginé, ?page=1)
GET    /api/v1/videos/:id           Métadonnées vidéo + token d'embed
POST   /api/v1/upload               Upload direct (petits fichiers)
POST   /api/v1/upload/init          Démarrer une session d'upload chunké
POST   /api/v1/upload/chunk         Téléverser un chunk
POST   /api/v1/upload/complete      Finaliser l'upload chunké
PUT    /api/v1/videos/:id           Mettre à jour title, allowed_domains
DELETE /api/v1/videos/:id           Supprimer une vidéo
GET    /api/v1/stats                Stats du compte : total vidéos, vues, stockage utilisé
GET    /api/v1/embed/:token         Métadonnées d'embed publiques (aucune auth pour vidéos publiques)
POST   /api/v1/videos/:id/subtitles Upload d'une piste de sous-titres (Enterprise)
GET    /api/v1/presets              Liste des préréglages du lecteur (Enterprise)
POST   /api/v1/presets              Créer un préréglage du lecteur (Enterprise)

Pattern d’upload chunké

# Étape 1 : init
curl -X POST https://dashboard.avcaption.com/api/v1/upload/init \
  -H "X-API-Key: avc_..." \
  -d '{"filename":"course-lesson-1.mp4","size":1234567890,"title":"Lesson 1"}'
# Renvoie : {"upload_id":"abc123","chunk_size":5242880}

# Étape 2 : upload des chunks (parallélisable)
curl -X POST https://dashboard.avcaption.com/api/v1/upload/chunk \
  -H "X-API-Key: avc_..." \
  -H "X-Upload-ID: abc123" \
  -H "X-Chunk-Index: 0" \
  --data-binary @chunk-0.bin
# ...répéter pour chaque chunk

# Étape 3 : complete
curl -X POST https://dashboard.avcaption.com/api/v1/upload/complete \
  -H "X-API-Key: avc_..." \
  -d '{"upload_id":"abc123"}'
# Renvoie : {"video_id":"...","embed_token":"...","status":"processing"}

Événements webhook (Enterprise)

Abonnez-vous aux événements sur un endpoint HTTPS quelconque :

  • video.uploaded — upload chunké terminé
  • video.encoded — encodage terminé, prêt à lire
  • video.failed — échec d’encodage (avec détails)
  • view.threshold — nombre de spectateurs franchit le seuil configuré
  • subtitle.translated — traduction IA terminée

Payload webhook signé en HMAC-SHA256.

Limites de débit

  • Endpoints en lecture (list, get) : 300 req/min par clé API
  • Endpoints en écriture (update, delete) : 60 req/min
  • Endpoints d’upload : 60 req/min sur init/complete ; les chunks eux-mêmes ne sont pas rate-limités
  • Stats : 60 req/min

Les limites s’élargissent automatiquement pour les clients Enterprise ; contactez les ventes pour des taux personnalisés.

Format d’erreur

{
  "error": "message d'erreur lisible",
  "code": "machine_readable_error_code",
  "request_id": "x-request-id-for-support-tickets"
}

Démarrer

L’API REST est incluse dans Enterprise. Générez votre clé API dans le dashboard Settings → API Keys. Ouvrez un compte Enterprise et lancez un seul appel d’upload chunké contre un fichier source réel avant de scripter la migration en masse. Déploiements pilotés par API courants : hébergement vidéo LMS, vidéo client agence, produits numériques.

Questions fréquemment posées

Que puis-je construire avec l'API vidéo AVCaption ? +
Tout ce qui demande de la gestion vidéo programmatique : pipelines d'ingestion depuis votre propre backend, migrations automatisées depuis une autre plateforme, quotas d'upload par utilisateur, dashboards personnalisés, rotation de tokens d'embed côté serveur, post-traitement piloté par webhook. L'API REST reflète le tableau de bord, plus l'upload chunké et les événements de webhook signés.
L'API est-elle rate-limitée ? +
Oui. Les limites par défaut sont généreuses pour la production (60 req/min sur la plupart des endpoints, plus haut sur les endpoints en lecture). Des limites dures protègent contre les abus. Les clients Enterprise peuvent demander des limites relevées.
L'API supporte-t-elle les uploads reprenables ? +
Oui. L'init d'upload renvoie un ID de session ; les chunks sont POSTés individuellement avec retry sur échec. Les sessions persistent 24 heures, donc une coupure réseau ne perd pas la progression.
L'API émet-elle des tokens d'embed par session ? +
Oui. POST /api/v1/embed-token avec un video_id, viewer_id et expires_in renvoie un token frais. Utilisez-le sur chaque session authentifiée de votre application pour que les URL iframe fuitées expirent dans la fenêtre choisie. Pattern obligatoire pour cours payants, tutoriels gated et tout contenu d'adhésion.
← content.back_to_index