Streaming Vidéo Chiffré sur AVCaption
Chaque vidéo téléversée sur AVCaption est chiffrée avant d’atteindre un edge CDN. Le déchiffrement à la lecture se fait côté client, dans le navigateur, via la Web Crypto API, et les clés sont livrées par des URL signées à courte durée liées à votre domaine.
Cette page détaille ce qui se passe réellement à chaque étape.
Le pipeline de chiffrement
Quand vous téléversez une vidéo sur AVCaption :
- Encodage GPU — votre fichier source est encodé en variantes HLS à débit adaptatif (360p, 540p, 720p, 1080p, 4K) avec NVIDIA NVENC.
- Découpe en segments — chaque variante est tranchée en segments HLS, typiquement 6 secondes chacun.
- Chiffrement par lot — les segments sont groupés en lots de 10 (60 secondes de lecture). Chaque lot reçoit une clé AES-128 fraîchement générée.
- Téléversement CDN — les segments chiffrés sont envoyés dans Cloudflare R2 et servis via le CDN CF mondial avec un cache agressif.
- Coffre à clés — les clés de chiffrement sont stockées séparément, jamais sur le CDN, jamais avec les segments.
Quand un spectateur clique sur lecture :
- Demande de token — le lecteur demande un token de lecture à
/api/stream/{embed_token}/token. Le serveur vérifie le token d’embed, le domaine demandeur (contre votre liste blanche) et les limites de débit. - Master playlist — le lecteur récupère le
.m3u8master HLS et choisit une variante selon la bande passante. - Récupération de clé par lot — pour chaque lot de segments dont il a besoin, le lecteur demande la clé correspondante à
/api/stream/{embed_token}/key/{batch}. Chaque URL de clé est signée avec le token de lecture et n’est valable que pour cette session. - Déchiffrement côté client — la Web Crypto API du navigateur déchiffre les segments en mémoire et les passe à l’élément vidéo. Les clés ne sont pas écrites sur disque.
Pourquoi le multi-clés compte
Le chiffrement à clé unique (modèle simple utilisé par beaucoup de plateformes) signifie : une vidéo, une clé, une URL. Si cette URL fuit, toute la vidéo est déchiffrable à jamais.
Le chiffrement multi-clés par lot signifie : une vidéo, plusieurs clés, plusieurs URL à courte durée. Si une URL fuit, seul ce lot (environ 60 secondes) est exposé. Le lot suivant exige une nouvelle demande de clé que celui qui fait fuiter ne peut faire sans token de lecture frais.
Cela élève fortement le coût de la piraterie. Les outils de rip automatisés qui fonctionnent contre les plateformes à clé unique (variantes de yt-dlp, téléchargeurs en extension) doivent être ré-écrits pour chaque cible multi-clés — la plupart ne s’en donnent pas la peine.
Tokens de lecture signés
Chaque token d’embed porte des métadonnées :
- Origines autorisées (votre liste blanche de domaines)
- Identifiant de spectateur optionnel (utilisé pour le filigrane dynamique en Enterprise)
- Fenêtre d’expiration (24 heures par défaut)
- Indications de limite de débit
La clé de signature est uniquement côté serveur. Les tokens forgés échouent à la vérification au moment de la requête.
Si vous servez du contenu gated (réservé aux membres, accès cours), votre application génère un token d’embed frais par session authentifiée, et le token expire avec la session. L’API REST d’AVCaption expose la génération de token d’embed pour les clients Enterprise.
Liste blanche de domaines
Par défaut, chaque iframe d’embed est restreint au hotlinking — le navigateur envoie un en-tête Referer avec l’origine d’embed, et l’API de stream d’AVCaption valide cette origine contre votre liste blanche avant d’émettre la master playlist.
Sur les plans Premium et Enterprise, vous spécifiez précisément les domaines autorisés. Quiconque incorpore l’iframe sur un domaine non listé reçoit immédiatement un 403.
C’est la couche où la majeure partie de la piraterie s’arrête : les scrapers qui prennent votre URL d’iframe et l’incorporent ailleurs reçoivent un 403, le lecteur ne se charge jamais.
Comparé aux autres plateformes
| Approche | Exemples | Force | Quand l’utiliser |
|---|---|---|---|
| URL signée seule | Wistia, chemins basiques CF Stream | La plus faible — vidéo entière déchiffrable si l’URL est capturée | Vidéo marketing, faible risque de piratage |
| AES-128 mono-clé | Bunny Stream, chemins chiffrés CF Stream | Solide contre le hotlinking occasionnel ; une clé + token capturé déchiffre toute la vidéo | Contenu gated occasionnel |
| AES-128 multi-clé | AVCaption | Clés rotatives par lot — une clé capturée n’expose que ~60 secondes | Contenu payant auto-produit |
| DRM Widevine / PlayReady | VdoCipher, JW Player Enterprise | Le plus solide — serveurs de licence liés au matériel ; requis pour le contenu studio sous licence | DRM imposé par contrat |
Pour cours, tutoriels gated, contenu membership payant, formation B2B et vidéo interne — l’AES-128 multi-clé est le bon arbitrage. Le DRM est de l’overkill, la mono-clé trop légère. Le décorticage DRM vs chiffrement couvre la décision.
Démarrer
Vous voulez voir les segments chiffrés en action ? Uploadez une vidéo test — les 60 premières secondes suffisent. Ouvrez DevTools, regardez les requêtes .m3u8 et .m4s voler, et essayez yt-dlp contre l’URL d’embed : les segments redescendent chiffrés et illisibles sans les clés rotatives par lot. L’offre gratuite livre la stack multi-clé complète sur chaque vidéo ; le chiffrement est actif par défaut, pas de bouton à activer.