DRM-X 6.0 paloma y rama de olivo logotipoDRM-X 6.0Documentación
◎ Español

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.

Ver MarkdownEjemplos en funcionamientoActualizado 2026-09-25
Descargar este kit de plataforma

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#

  1. Configuraciónsettings.py

    Añadir drmx y configurar DRMX, incluyendo AUTHORIZE.

  2. Autorizar

    Su aplicación: drmx_access.py

    Implemente authorize(user, video_id) usando su sistema existente.

  3. Rutaurls.py

    Incluye 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.whl

Utilice 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.