Versleutelde Videostreaming op AVCaption
Elke video die naar AVCaption wordt geüpload, wordt versleuteld voordat hij een CDN-edge bereikt. De ontsleuteling bij weergave gebeurt clientzijdig in de browser via de Web Crypto API, en de sleutels worden geleverd via signed, kortlevende URLs gekoppeld aan je domein.
Deze pagina loopt door wat er werkelijk in elke stap gebeurt.
De versleutelingspipeline
Wanneer u een video naar AVCaption uploadt:
- GPU-encoding — je bronbestand wordt gecodeerd naar HLS adaptieve bitrate-varianten (360p, 540p, 720p, 1080p, 4K) met NVIDIA NVENC.
- Segmentopdeling — elke variant wordt in HLS-segmenten gesneden, meestal 6 seconden per stuk.
- Batchversleuteling — segmenten worden gegroepeerd in batches van 10 (60 seconden weergave). Elke batch krijgt een vers gegenereerde AES-128-sleutel.
- CDN-upload — versleutelde segmenten worden naar Cloudflare R2 geüpload en geleverd via de globale CF-CDN met agressieve caching.
- Sleutelkluis — versleutelingssleutels staan apart, nooit op de CDN, nooit bij de segmenten.
Wanneer een kijker op play klikt:
- Tokenaanvraag — de speler vraagt een playback-token op via
/api/stream/{embed_token}/token. De server controleert het embed-token, het aanvragende domein (tegen je whitelist) en rate limits. - Master playlist — de speler haalt de HLS-master
.m3u8op en kiest een variant op basis van bandbreedte. - Sleutelophaal per batch — voor elke batch segmenten die de speler nodig heeft, vraagt hij de bijbehorende sleutel op via
/api/stream/{embed_token}/key/{batch}. Elke sleutel-URL is gesigneerd met het playback-token en alleen geldig voor die sessie. - Clientzijdige ontsleuteling — de Web Crypto API van de browser ontsleutelt segmenten in het geheugen en voedt ze aan het video-element. Sleutels worden niet naar schijf geschreven.
Waarom multi-key telt
Single-key-versleuteling (het simpele model dat veel platforms gebruiken) betekent: één video, één sleutel, één URL. Lekt die URL, dan is de hele video voor altijd ontsleutelbaar.
Multi-key per batch betekent: één video, veel sleutels, veel kortlevende URLs. Lekt een URL, dan is alleen die batch (ongeveer 60 seconden materiaal) blootgesteld. De volgende batch vereist een nieuwe sleutelaanvraag, die de lekker zonder vers playback-token niet kan doen.
Dit verhoogt de kosten van piraterij aanzienlijk. Geautomatiseerde rip-tools die werken tegen single-key-platforms (yt-dlp-varianten, browser-extensie-downloaders) moeten voor elk multi-key-doelwit opnieje worden gebouwd — de meeste doen dat niet.
Signed playback-tokens
Elk embed-token bevat metadata:
- Toegestane origins (je domeinwhitelist)
- Optionele kijker-identifier (gebruikt voor dynamisch watermerk in Enterprise)
- Vervaltermijn (standaard 24 uur)
- Rate limit-aanwijzingen
De ondertekeningssleutel staat uitsluitend serverzijdig. Vervalste tokens vallen al door de verificatie bij de aanvraag.
Bij gated content (alleen leden, cursustoegang) genereert je applicatie een vers embed-token per geverifieerde sessie, zodat het token verloopt met de sessie. De REST-API van AVCaption stelt embed-tokengeneratie beschikbaar voor Enterprise-klanten.
Domeinwhitelisting
Standaard accepteert elke embed-iframe alleen hotlinking — de browser stuurt een Referer-header met de embedding-origin, en de stream-API van AVCaption valideert die origin tegen je whitelist voordat de master playlist wordt vrijgegeven.
In Premium en Enterprise geeft u precies aan welke domeinen mogen. Wie de iframe op een niet-gewhitelistet domein embedt, krijgt direct een 403.
Dit is de laag waar het meeste piraterijverkeer stopt: scrapers die je iframe-URL kapen en op een andere site embedden krijgen een 403 en de speler laadt nooit.
Vergelijking met andere platforms
- Single-key AES-128 (Bunny, CF Stream): één sleutel per video. Sterk tegen casual hotlinking, zwak zodra een token+sleutel-paar wordt afgevangen.
- Multi-key AES-128 (AVCaption): roulerende sleutels per batch. Sterker van ontwerp, verhoogt de kosten van geautomatiseerde piraterij.
- Widevine/PlayReady DRM (VdoCipher, JW Player Enterprise): hardwaregebonden licentieservers met content-decryption-modules. Het sterkst, maar duur en alleen vereist voor studio-gelicentieerde inhoud. Zie de volledige DRM vs versleuteling-uitsplitsing.
Voor cursussen, gated tutorials, betaalde membership-content, B2B-training en interne video is multi-key AES-128 de juiste afweging. DRM is overkill, single-key te dun.
Aan de slag
Het free-tier biedt volledige multi-key versleuteling op elke video. Registreren en je eerste video uploaden — versleuteling staat standaard aan, geen schakelaar nodig.