Vidéo protégée Django
Utilisez l'authentification Django et votre propre rappel d'autorisation. Le paquet DRM-X ne crée aucune table vidéo ou d'accès.
SDK en préversion, exemple d’application et code source. Conservez l’arborescence extraite.
Toutes les plateformes et kit complet · Comprendre le processus d'intégration
Les trois endroits que vous personnalisez#
- Configurer
settings.pyAjoutez drmx et configurez DRMX, y compris AUTHORIZE.
- Autoriser
Votre application : drmx_access.py
Implémentez authorize(user, video_id) à partir de votre système existant.
- Configurer les routes
urls.pyIncluez drmx.urls ; réutilisez vos middlewares habituels de connexion et de protection CSRF.
1. Installer le paquet wheel#
# From the extracted kit root:
python -m pip install packages/python/drmx_django-1.3.0rc13-py3-none-any.whlUtilisez Python 3.12+ et une version Django prise en charge (5.2–6.0). Ajouter drmx à INSTALLED_APPS. Gardez l'authentification, les sessions et CsrfViewMiddleware. Aucune commande de migration DRM-X n'est nécessaire pour une nouvelle installation; votre propre application peut encore avoir besoin de ses migrations normales.
2. Configurer les paramètres et les routes#
# settings.py — keep your existing application settings
DRMX = {
'SITE_ID': os.environ['DRMX_SITE_ID'],
'SITE_KEY': os.environ['DRMX_SITE_KEY'],
'ACCESS_KEY': os.environ['DRMX_ACCESS_KEY'],
'INSTANCE_ID': 'my-website',
'POLICY': 'multi-tier-standard',
'AUTHORIZE': 'myapp.drmx_access.authorize',
}
# urls.py — add to your existing urlpatterns
path('video/', include('drmx.urls'))Importer os dans les paramètres et path/include dans les urls comme d'habitude. Remplacer myapp par votre module d'application.
3. Retourner le contenu autorisé#
Créez myapp/drmx_access.py. L’appel à la couche d’accès aux données ci-dessous est un exemple ; utilisez votre requête actuelle de vérification des achats, de l’adhésion ou de l’inscription.
def authorize(user, video_id):
video = customer_catalog.find_authorized_video(user.id, video_id)
if video is None:
return None
return {'content_id': video.drmx_content_id,
'content_type': 'vod', 'title': video.title}Pour le premier test local, autorisez un utilisateur de test existant et un identifiant vidéo du site, puis retournez votre Content ID publié. Réservez cette règle temporaire au test local. Le fichier examples/sdk/django/authorization.py fourni refuse tout accès tant que vous ne l’avez pas implémenté.
Dans la production, utilisez la requête de base de données sur chaque appel. Retournez None lorsque l'accès est manquant, expiré ou révoqué. La politique omise utilise votre valeur par défaut configurée.
4. Connectez-vous et ouvrez le lecteur#
Ouvrez /video/lesson-123/ avec l’identifiant vidéo choisi dans votre site. Les identifiants sous forme de chaînes et les UUID sont acceptés. Le SDK fournit la page du lecteur et l’endpoint de session, et exécute à nouveau le callback à chaque requête.
Conserver des protections normales Django#
Conservez la validation CSRF fournie et l’endpoint de même origine. Le lecteur actuel transmet un jeton CSRF masqué dans l’URL de l’endpoint ; excluez sa chaîne de requête des journaux d’accès et conservez le comportement no-store/no-referrer. Utilisez HTTPS et des cookies de session sécurisés.
Mise à niveau d'une ancienne installation avec des tables DRM-X ? Préservez son historique de migration et lisez legacy/README.md avant de supprimer l'ancienne application. La nouvelle SDK ne supprime pas ces tables.
Vérifications avant la mise en production#
- Se connecter en tant qu'utilisateur autorisé et lire une vidéo publiée dans un navigateur pris en charge.
- Testez des utilisateurs déconnectés et n’ayant pas payé, puis révoquez ou faites expirer l’accès. Les nouvelles demandes de session doivent être refusées.
- Modifiez le Content ID dans le navigateur ou l’identifiant vidéo du site. Le serveur doit vérifier la nouvelle sélection.
- Définissez l'origine publique exacte de HTTPS, gardez votre framework pour la protection session/CSRF et désactivez le code d'identité de démo.
Les sessions existantes et les licences DRM ont leur propre durée de vie. Les modifications de permission sont vérifiées sur de nouvelles requêtes; elles n'effacent pas une licence déjà délivrée.
DRM-X 6.0