Signed URLs en Embed-tokens — Video-toegangscontrole per sessie

Signed URLs en Embed-tokens

Elke video op AVCaption heeft een embed-token in zijn URL: https://avcaption.com/watch/{embed_token}. Het token is de toegangsreferentie — wie een geldig token heeft kan de video afspelen, wie er geen heeft wordt geweigerd.

Voor gratis of openbare content genereer je één token per video en leeft het oneindig. Voor betaalde of gated content genereer je verse tokens per geverifieerde sessie via de REST-API.

Hoe tokens werken

Een token is een korte opaque string (standaard 32 hex-tekens). Serverzijdig mapt het op:

  • Het video-ID
  • Een optionele kijker-identifier (voor analytics en dynamisch watermerk)
  • Een vervaltijdstempel
  • Een lijst toegestane origins (je domain whitelist)
  • Rate limit-metadata

Wanneer de speler een streamsleutel opvraagt, valideert de server het token, controleert vervaldatum, controleert de aanvraagorigin en geeft pas dan de AES-128-sleutel voor de volgende batch vrij.

Per-sessie-tokens via REST-API

Voor betaalde content is het aanbevolen patroon:

  1. Gebruiker logt in in je applicatie.
  2. Je applicatie verifieert de gebruiker tegen je DB.
  3. Je applicatie roept de REST-API van AVCaption aan: POST /api/v1/embed-token met {video_id, viewer_id, expires_in: 3600}.
  4. AVCaption retourneert een eenmalig embed-token, geldig 1 uur.
  5. Je rendert de iframe met dat token.
  6. Het token verloopt; als de gebruiker ververst, genereert je app een nieuwe.

Dat betekent dat een gebruiker die de iframe-URL kopieert en deelt, een token doorgeeft dat binnen een uur verloopt — onbruikbaar voor herdistributie.

Domeinwhitelisting op tokenniveau

Tokens kunnen aan specifieke origins worden gebonden. Een token uitgegeven voor app.example.com werkt niet als hij wordt embed op pirate-site.com. De browser stuurt bij de master-playlist-aanvraag een Referer-header; AVCaption valideert die tegen de whitelist en weigert sleutels uit te geven.

Vergeleken met signed URL-aanpakken

Sommige platforms gebruiken signed URLs (HMAC-gesigneerde query strings op elk segment). AVCaption gebruikt opaque tokens die serverzijdig mappen op toegangsmetadata. Afwegingen:

  • Signed URLs — volledig stateless, makkelijk te verifiëren op de edge. Maar zodra een URL is gesigneerd, kan hij niet worden ingetrokken vóór vervaldatum.
  • Opaque tokens (AVCaption) — vereisen serverzijdige opzoeking per streamsessie, maar maken realtime intrekking, per-token-analytics en rijkere toegangsmetadata mogelijk.

Voor betaalde content waar intrekking telt, winnen opaque tokens. Zie de glossariumitem embed-token vs signed URL voor een diepere vergelijking.

Tokenrotatie

Voor zeer hoogwaardige content rouleer je tokens via de API op een schema:

POST /api/v1/embed-token/rotate
{ "video_id": "abc123" }

Dit ongeldigverklaart alle bestaande tokens voor die video en geeft een nieuwe uit. Handig na een vermoede lek of een chargeback.

Aan de slag

Embed-tokens worden automatisch uitgegeven bij elke upload, in alle tiers. De REST-API voor per-sessie-tokengeneratie is een Enterprise-functie. Registreren. Veelvoorkomende patronen: per-sessie-tokens voor online cursussen en video voor membership site.

Veelgestelde vragen

Wat is een signed URL voor video? +
Een signed URL is een afspeel-URL met een cryptografische handtekening in de query string die bewijst dat de URL is uitgegeven door de origin-server. De CDN-edge of origin controleert de handtekening voordat het segment wordt geleverd; gemanipuleerde of verlopen URLs worden afgewezen. Signed URLs laten betaalde platforms videotoegang afsluiten zonder per-gebruiker-status op de edge te bewaren.
Hoe lang is een embed-token geldig? +
Standaard 24 uur. Je kunt het per video instellen van 5 minuten tot 30 dagen, of via de REST-API verse tokens per sessie genereren. Voor hoogwaardige content zijn kortlevende tokens per geverifieerde sessie het aanbevolen patroon.
Kan ik een token midden in de weergave intrekken? +
Ja. Intrekken via dashboard of API. De volgende sleutelaanvraag van die sessie mislukt — de weergave stopt binnen 60 seconden (de volgende batchgrens).
Signed URL of embed-token — welke moet ik gebruiken? +
Embed-tokens voor betaalde content waar intrekking telt; signed URLs voor stateless edge-verificatie. AVCaption gebruikt opaque embed-tokens die serverzijdig mappen naar toegangsmetadata, zodat je een gelekt token direct kunt intrekken. Pure signed URLs zijn stateless maar kunnen vóór hun vervaldatum niet worden ingetrokken. Zie de vergelijking embed-token vs signed URL voor de volledige afweging.
← content.back_to_index