Video-API — REST-endpoints voor Programmatische Videobeheer

Video-API

AVCaption levert een REST-API voor programmatisch videobeheer. Beschikbaar in Enterprise; previewtoegang voor Premium op aanvraag.

Authenticatie

Twee methoden:

Bearer-token (JWT) — uitgegeven bij login, verzonden als header Authorization: Bearer <token>. Gebruikt door je geverifieerde dashboardsessies.

API-key — gegenereerd op je settingspagina. Formaat avc_<64-hex-tekens>. Verzend als header X-API-Key: <key> of als query-parameter ?api_key=<key>. Handig voor server-naar-server.

Endpoints

GET    /api/v1/videos               Lijst video's (paginated, ?page=1)
GET    /api/v1/videos/:id           Video-metadata + embed-token
POST   /api/v1/upload               Directe upload (kleine bestanden)
POST   /api/v1/upload/init          Chunked upload-sessie starten
POST   /api/v1/upload/chunk         Eén chunk uploaden
POST   /api/v1/upload/complete      Chunked upload afronden
PUT    /api/v1/videos/:id           Title, allowed_domains bijwerken
DELETE /api/v1/videos/:id           Video verwijderen
GET    /api/v1/stats                Account-stats: totaal video's, views, gebruikt opslag
GET    /api/v1/embed/:token         Publieke embed-metadata (geen auth voor publieke video's)
POST   /api/v1/videos/:id/subtitles Ondertiteltrack uploaden (Enterprise)
GET    /api/v1/presets              Speler-presets opsommen (Enterprise)
POST   /api/v1/presets              Speler-preset aanmaken (Enterprise)

Chunked upload-patroon

# Stap 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"}'
# Retourneert: {"upload_id":"abc123","chunk_size":5242880}

# Stap 2: chunks uploaden (parallel mogelijk)
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
# ...herhalen voor elke chunk

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

Webhook-events (Enterprise)

Abonneer op events op elk HTTPS-endpoint:

  • video.uploaded — chunked upload voltooid
  • video.encoded — encoding klaar, klaar om af te spelen
  • video.failed — encoding mislukt (met foutdetails)
  • view.threshold — kijkersaantal kruist de geconfigureerde drempel
  • subtitle.translated — AI-vertaling voltooid

Webhook-payload gesigneerd met HMAC-SHA256.

Rate limits

  • Read-endpoints (list, get): 300 req/min per API-key
  • Write-endpoints (update, delete): 60 req/min
  • Upload-endpoints: 60 req/min op init/complete; de chunks zelf zijn niet rate-limited
  • Stats: 60 req/min

Limieten schalen automatisch voor Enterprise-klanten; neem contact op met sales voor maatwerktarieven.

Foutformaat

{
  "error": "leesbare foutmelding",
  "code": "machine_readable_error_code",
  "request_id": "x-request-id-for-support-tickets"
}

Aan de slag

De REST-API zit in Enterprise. Genereer je API-key in het dashboard onder Settings → API Keys. Upgrade. Veelvoorkomende API-gestuurde inzet: LMS-videohosting, video voor agencyklanten, digitale producten.

Veelgestelde vragen

Wat kan ik bouwen met de AVCaption Video-API? +
Alles wat programmatische videobeheer vraagt: ingest-pipelines vanuit je eigen backend, geautomatiseerde migraties vanaf een ander platform, upload-quota per gebruiker, custom dashboards, server-side embed-token-rotatie, webhook-gestuurde nabewerking. De REST-API spiegelt het dashboard, plus chunked upload en signed webhook-events.
Is de API rate-limited? +
Ja. De standaardlimieten zijn ruim voor productie (60 req/min op de meeste endpoints, hoger op read-endpoints). Harde limieten beschermen tegen misbruik. Enterprise-klanten kunnen verhoogde limieten aanvragen.
Ondersteunt de API hervatbare uploads? +
Ja. Upload-init retourneert een upload-sessie-ID; chunks worden afzonderlijk gePOST met retry bij falen. Sessies blijven 24 uur bestaan, dus een netwerkonderbreking verliest geen voortgang.
Geeft de API embed-tokens per sessie uit? +
Ja. POST /api/v1/embed-token met video_id, viewer_id en expires_in retourneert een vers token. Gebruik dit bij elke geverifieerde sessie in je eigen applicatie zodat gelekte iframe-URLs binnen het gekozen venster verlopen. Verplicht patroon voor betaalde cursussen, gated tutorials en alle membership-content.
← content.back_to_index