Verschlüsseltes Video-Streaming auf AVCaption
Jedes auf AVCaption hochgeladene Video wird verschlüsselt, bevor es einen CDN-Edge erreicht. Die Entschlüsselung bei der Wiedergabe geschieht clientseitig im Browser über die Web Crypto API, und die Schlüssel werden über signierte, kurzlebige URLs ausgeliefert, die an Ihre Domain gebunden sind.
Diese Seite geht Schritt für Schritt durch, was tatsächlich passiert.
Die Verschlüsselungspipeline
Beim Upload eines Videos zu AVCaption:
- GPU-Encoding — Ihre Quelldatei wird mit NVIDIA NVENC in HLS-Adaptive-Bitrate-Varianten (360p, 540p, 720p, 1080p, 4K) kodiert.
- Segmentierung — jede Variante wird in HLS-Segmente von typisch 6 Sekunden geschnitten.
- Batch-Verschlüsselung — Segmente werden in Batches zu je 10 Stück (60 Sekunden Wiedergabe) gruppiert. Jeder Batch erhält einen frisch generierten AES-128-Schlüssel.
- CDN-Upload — verschlüsselte Segmente werden in Cloudflare R2 abgelegt und über das globale CF-CDN mit aggressivem Caching ausgeliefert.
- Key-Vault — Verschlüsselungsschlüssel liegen separat, nie im CDN, nie bei den Segmenten.
Wenn ein Zuschauer auf Play klickt:
- Token-Anfrage — der Player fordert ein Wiedergabe-Token von
/api/stream/{embed_token}/tokenan. Der Server prüft das Embed-Token, die anfragende Domain (gegen Ihre Whitelist) und Rate-Limits. - Master-Playlist — der Player lädt das HLS-Master
.m3u8und wählt eine Variante anhand der Bandbreite. - Schlüssel-Abruf pro Batch — für jeden benötigten Segment-Batch fordert der Player den passenden Schlüssel von
/api/stream/{embed_token}/key/{batch}an. Jede Schlüssel-URL ist mit dem Wiedergabe-Token signiert und nur für diese Session gültig. - Clientseitige Entschlüsselung — die Web Crypto API des Browsers entschlüsselt Segmente im Speicher und reicht sie an das Video-Element. Schlüssel werden nicht auf die Festplatte geschrieben.
Warum Multi-Key zählt
Single-Key-Verschlüsselung (das einfache Modell vieler Plattformen) bedeutet: ein Video, ein Schlüssel, eine URL. Leakt diese URL, ist das gesamte Video für immer entschlüsselbar.
Multi-Key-Verschlüsselung pro Batch bedeutet: ein Video, viele Schlüssel, viele kurzlebige URLs. Leakt eine URL, ist nur dieser Batch (rund 60 Sekunden Material) offen. Der nächste Batch verlangt eine neue Schlüsselanfrage, die der Leaker ohne frisches Wiedergabe-Token nicht stellen kann.
Das hebt die Piraterie-Kosten erheblich. Automatisierte Rip-Tools, die gegen Single-Key-Plattformen funktionieren (yt-dlp-Varianten, Browser-Extension-Downloader), müssten für jedes Multi-Key-Ziel umgeschrieben werden — die meisten lassen es bleiben.
Signierte Wiedergabe-Tokens
Jedes Embed-Token trägt Metadaten:
- Erlaubte Origins (Ihre Domain-Whitelist)
- Optionale Zuschauer-Kennung (für dynamische Wasserzeichen in Enterprise)
- Ablauffenster (Standard 24 Stunden)
- Rate-Limit-Hinweise
Der Signierschlüssel liegt ausschließlich serverseitig. Gefälschte Tokens fallen bereits beim Request durch die Prüfung.
Bei Gated Content (nur Mitglieder, Kurszugriff) erzeugt Ihre Anwendung pro authentifizierter Session ein frisches Embed-Token, das mit der Session abläuft. Die REST-API von AVCaption macht die Embed-Token-Erzeugung für Enterprise-Kunden zugänglich.
Domain-Whitelisting
Standardmäßig sind alle Embed-Iframes hotlinked-only — der Browser sendet einen Referer-Header mit der einbettenden Origin, und die Stream-API von AVCaption prüft diese Origin gegen Ihre Whitelist, bevor die Master-Playlist ausgeliefert wird.
In Premium und Enterprise legen Sie genau fest, welche Domains erlaubt sind. Wer den Iframe auf einer nicht freigegebenen Domain einbettet, bekommt sofort einen 403.
An dieser Schicht stoppt die meiste Piraterie: Scraper, die Ihre Iframe-URL übernehmen und auf einer anderen Site einbetten, bekommen schlicht einen 403, und der Player lädt nie.
Vergleich zu anderen Plattformen
| Ansatz | Beispiele | Stärke | Wann passend |
|---|---|---|---|
| Nur Signed URL | Wistia, einfache CF-Stream-Pfade | Am schwächsten — Video komplett entschlüsselbar, sobald URL abgegriffen | Marketing-Video, geringes Piraterie-Risiko |
| Single-Key AES-128 | Bunny Stream, CF-Stream-encrypted-Pfade | Stark gegen Casual-Hotlinking; ein abgegriffener Schlüssel + Token entschlüsselt das ganze Video | Casual gated Content |
| Multi-Key AES-128 | AVCaption | Rotierende Schlüssel pro Batch — ein abgegriffener Schlüssel öffnet nur ~60 Sekunden | Eigenproduzierter bezahlter Content |
| Widevine / PlayReady DRM | VdoCipher, JW Player Enterprise | Am stärksten — hardware-gebundene License-Server; Pflicht für studio-lizenzierten Content | Vertraglich erzwungenes DRM |
Für Kurse, gated Tutorials, bezahlten Membership-Content, B2B-Trainings und interne Videos ist Multi-Key AES-128 der richtige Trade-off. DRM ist Overkill, Single-Key zu dünn. Die ausführliche Aufschlüsselung in DRM vs Verschlüsselung deckt die Entscheidung ab.
Loslegen
Verschlüsselte Segmente in Aktion sehen? Test-Video hochladen — die ersten 60 Sekunden reichen. DevTools öffnen, die .m3u8- und .m4s-Requests beobachten, dann yt-dlp gegen die Embed-URL probieren: die Segmente kommen verschlüsselt durch und sind ohne die rotierenden Per-Batch-Schlüssel nicht abspielbar. Der Free-Tier liefert den vollen Multi-Key-Stack auf jedem Video; Verschlüsselung ist standardmäßig an, kein Schalter nötig.