vídeo protegido Django
Utilice la autenticación de Django y su propio callback de permisos. El paquete DRM-X no crea tablas de vídeos ni de autorizaciones de acceso.
SDK en versión preliminar, ejemplo de aplicación y código fuente. Conserve la estructura de carpetas extraída.
Todas las plataformas y el kit completo · Entender el proceso de integración
Los tres puntos que debe personalizar#
- Configuración
settings.pyAñadir drmx y configurar DRMX, incluyendo AUTHORIZE.
- Autorizar
Su aplicación: drmx_access.py
Implemente authorize(user, video_id) usando su sistema existente.
- Ruta
urls.pyIncluye drmx.urls; reutiliza tu login normal y el middleware CSRF.
1. Instalar el paquete wheel#
# From the extracted kit root:
python -m pip install packages/python/drmx_django-1.3.0rc13-py3-none-any.whlUtilice Python 3.12+ y una versión Django compatible (5.2–6.0). Añadir drmx a INSTALLED_APPS. Mantenga la autenticación, sesiones y CsrfViewMiddleware. No se requiere un comando de migración DRM-X para una nueva instalación; su propia aplicación todavía puede necesitar sus migraciones normales.
2. Configuración y rutas#
# 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'))Importar os en configuraciones y path/include en urls como siempre. Reemplace myapp con su módulo de aplicación.
3. Devolver el contenido autorizado#
Cree myapp/drmx_access.py. La llamada del repositorio a continuación es ilustrativa; utilice su consulta actual de compra, membresía o inscripción.
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}Para la primera prueba local, permita un usuario de prueba existente y un ID de vídeo del sitio, y devuelva su Content ID publicado. Limite esa regla temporal a la prueba local. El archivo examples/sdk/django/authorization.py incluido deniega todo acceso hasta que usted lo implemente.
En producción, consulte la base de datos en cada llamada. Devuelva None cuando no haya permiso o haya caducado o se haya revocado. Si se omite la política, se utiliza la predeterminada configurada.
4. Inicia sesión y abre el reproductor#
Abra /video/lesson-123/ con el ID de vídeo que haya seleccionado en su sitio. Se admiten ID de cadena y UUID. El SDK proporciona la página del reproductor y el endpoint de sesión y vuelve a ejecutar el callback en cada solicitud.
Mantenga las protecciones Django normales#
Mantenga la validación CSRF incluida y el endpoint del mismo origen. El reproductor actual pasa un token CSRF enmascarado en la URL del endpoint; excluya su cadena de consulta de los registros de acceso y conserve el comportamiento no-store/no-referrer. Utilice HTTPS y cookies de sesión seguras.
Actualización de una instalación más antigua con tablas DRM-X? Preserve su historial de migración y lee legacy/README.md antes de eliminar la vieja aplicación. El nuevo SDK no elimina esas tablas.
Comprobar antes de pasar a producción#
- Inicie sesión como usuario permitido y reproducir un vídeo publicado en un navegador compatible.
- Pruebe usuarios sin sesión iniciada y usuarios que no hayan pagado; después, revoque el acceso o haga que caduque. Las nuevas solicitudes de sesión deben denegarse.
- Modifique el Content ID en el navegador o el ID de vídeo del sitio. El servidor debe comprobar la nueva selección.
- Establezca el origen HTTPS público exacto, mantenga la protección session/CSRF de su marco, y desactive el código de identidad de demostración.
Las sesiones existentes y las licencias DRM tienen sus propios periodos de validez. Las nuevas solicitudes comprueban los cambios de permisos; no borran una licencia ya emitida.
DRM-X 6.0