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

Ejemplos por lenguaje de backend

Entender el flujo de reproducción común y encontrar el callback exacto para modificar en Node.js, Django, Laravel, PHP, ASP.NET o Java.

Ver MarkdownEjemplos en funcionamientoActualizado 2026-09-25

Su sitio web decide quién puede ver#

Conserve sus sistemas de inicio de sesión, compras, membresía y matrícula. Su aplicación proporciona el usuario actual y el Content ID autorizado. El SDK llama a DRM-X y el reproductor carga el vídeo protegido.

Una conexión con su aplicación existente

Usted gestiona el inicio de sesión y la decisión de acceso. El SDK y el reproductor se encargan de la reproducción protegida.

  1. Mantenga su login

    El espectador inicia sesión en su sitio web existente.

  2. Conecte su búsqueda

    Su aplicación verifica el acceso y devuelve el DRM-X Content ID para la lección seleccionada.

  3. Llame a través de SDK

    El backend SDK utiliza credenciales del servidor para solicitar la reproducción autorizada desde DRM-X.

  4. Mostrar el reproductor

    El reproductor obtiene una licencia DRM y reproduce el contenido cifrado publicado.

Comprender los dos IDs de vídeo#

ValorEjemploDe donde viene
ID de vídeo del sitiolesson-123Su lección, producto o vídeo.
DRM-X Content IDyour-published-content-idEl contenido protegido publicado en DRM-X.
ID de usuariocustomer-456Tu sesión de inicio de sesión autenticada.

Mapee su lección a su Content ID utilizando su base de datos existente, API o código de aplicación. Encontrar un vídeo no prueba que este usuario pueda verlo; comprobar el permiso antes de devolverlo.

Prepare una vez, luego integre#

  1. Cifre y publique un vídeo y copie su Content ID.
  2. Crear credenciales de reproducción para el mismo ambiente. Utilice Site ID, Site Key y Access Key en el servidor.
  3. Descargue el kit completo o su kit de plataforma. Instale su SDK usando su administrador de paquetes.
  4. Conecte su callback de permisos del usuario sobre el contenido y añada el reproductor a la página.

El SDK funciona en contenido ya publicado. No sustituye al empaquetador ni a su sistema de pago. Las dependencias de tiempo de ejecución de terceros pueden necesitar acceso a Internet durante la instalación.

Elija su lenguaje#

Seleccione un lenguaje para ver los puntos que debe modificar.

Node.js / Express

Editar su aplicación: server.mjs

Conectar: authorize(userId, videoId)

Devuelve una asignación de contenido autorizada o null. Lea al usuario desde su middleware de inicio de sesión existente.

Abrir el tutorial y los comandos de instalación →

Python / Django

Editar su aplicación: authorization.py

Conectar: authorize(user, video_id)

Devuelve un diccionario con content_id, o None. Regístrelo como DRMX['AUTHORIZE'] en settings.py.

Abrir el tutorial y los comandos de instalación →

PHP / Laravel

Editar su aplicación: app/Services/DrmxAccess.php

Conectar: ContentAuthorizer.authorize(user, videoId)

Devuelva un array de contenido autorizado o null. Registre su servicio en AppServiceProvider.

Abrir el tutorial y los comandos de instalación →

PHP sin framework

Editar su aplicación: index.php

Conectar: findAuthorizedVideo(userId, videoId)

Devuelve una matriz de contenido autorizada o null. Conecte su identidad de sesión PHP existente.

Abrir el tutorial y los comandos de instalación →

C# / ASP.NET Core

Editar su aplicación: Program.cs

Conectar: QuickStartCatalog.FindAuthorizedVideoAsync

Regrese QuickStartVideo o null. IDrmXContentEntitlement verifica el Content ID solicitado contra ese resultado.

Abrir el tutorial y los comandos de instalación →

C# / ASP.NET Framework

Editar su aplicación: App_Code/DrmXPlayback.cs

Conectar: ApplicationServices.Authorize

Devuelva true solo para un usuario autorizado, Content ID y tipo de contenido. Este es un adaptador de fuente para Windows/IIS.

Abrir el tutorial y los comandos de instalación →

Java / Spring Boot

Editar su aplicación: DrmxAccess.java

Conectar: ContentEntitlement.authorize(userId, videoId)

Devuelva Optional<AuthorizedVideo> u Optional.empty(). Conecte el controlador y el bean de autorización a su repositorio existente.

Abrir el tutorial y los comandos de instalación →

Configure su servidor#

EjemplosVariables de entorno
Node, Django, Java, PHP SDK, LaravelDRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY
ASP.NET Core y ASP.NET FrameworkDRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY, DRMX_PLAYBACK_ACCESS_KEY

Carga estos en el proceso del servidor. Content ID es un valor de negocio por vídeo; no sobreescribir credenciales compartidas o configuración global para cambiar usuarios o videos. Mantenga la selección de políticas en el servidor.

PHP: Conecte su sitio web existente#

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

  1. Configuración

    Entorno del servidor

    Establezca DRMX_SITE_ID, DRMX_SITE_KEY y DRMX_ACCESS_KEY.

  2. Autorizarexamples/sdk/php/index.php

    Edite findAuthorizedVideo($userId, $videoId) y lea el ID de usuario de su sesión existente.

  3. Insertar

    Su página de lección

    Reutilice el marcado del reproductor y conserve el videoId seleccionado en el endpoint de sesión.

cd examples/sdk/php
composer install
# Set server credentials and DRMX_LOCAL_DEMO=1 for a localhost demo only.
php -S 127.0.0.1:8106 index.php

Para la primera prueba, sustituya your-published-content-id dentro de findAuthorizedVideo. Abra http://127.0.0.1:8106/?videoId=1 y use Local demo sign in. PHP necesita compatibilidad con cURL y ZIP; utilice PHP 8.2 o posterior.

Para su aplicación, reemplace la función demo con su propia búsqueda. La siguiente llamada de repositorio es ilustrativa; implementarla usando su base de datos:

function findAuthorizedVideo(string $userId, string $videoId): ?array {
    $video = customerFindAuthorizedVideo($userId, $videoId);
    if ($video === null) return null;
    return ['contentId' => $video['drmx_content_id'],
            'contentType' => 'vod', 'title' => $video['title'],
            'policy' => 'multi-tier-standard'];
}

Lea $userId desde la autenticación habitual del servidor. Conserve las comprobaciones de origen, la validación de solicitudes y los controles exactos de contenido y tipo del ejemplo. Elija una política que coincida con el contenido publicado. PlaybackClient realiza la solicitud a DRM-X; no puede deducir sus reglas de compra.

Otros lenguajes e integración con la API#

Go, Ruby y otros lenguajes de servidor pueden llamar a la API de sesiones de reproducción tras autenticar al usuario y comprobar su acceso al contenido. Esta versión no incluye bibliotecas SDK para Go ni Ruby. Para las siete integraciones anteriores, prefiera los SDK incluidos.

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.

PHP: ejecutar el sitio web de demostración completa#

Probar la demostración PHP en línea · Descargar la demostración PHP completa · SHA-256

Elija el ejemplo de PHP SDK anterior para una integración pequeña con Composer en su sitio existente. Elija esta demostración completa si desea un sitio listo para ejecutar, con ejemplos de lista de reproducción, proxy de tokens y diagnóstico. La demostración completa usa un adaptador de código fuente y requiere PHP 8.2+ con cURL, pero no Composer ni base de datos. Ambas opciones mantienen las credenciales en su servidor y requieren su comprobación de permisos.

  1. Primera reproducciónconfig/drmx.php

    Establezca siteId, siteKey, accessKey, content.id, content.type y un licensePolicyTemplate compatible. Conserve el resto del array.

  2. Sus clientessrc/bootstrap.php

    Conecte authenticated_user_id() a su inicio de sesión; sustituya user_can_play_content() por una comprobación actualizada de compras, membresía o matrícula.

  3. Tu catálogo de vídeosrc/bootstrap.php + public/index.php

    Sustituya las funciones auxiliares del catálogo de demostración por su consulta de vídeo existente. Muestre solo un Content ID y un tipo autorizados; conserve las comprobaciones del servidor en cada solicitud de sesión.

# Windows, inside the extracted drmx-php-sample folder:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run-local.ps1
# macOS / Linux:
bash ./run-local.sh

Abra http://127.0.0.1:8086/ y pulse Play. La reproducción en línea resuelve automáticamente el manifiesto registrado. La demostración local inicia sesión con un espectador de prueba; esto solo verifica la primera reproducción.

Para su sitio, establezca demo.allowLogin, demo.autoAuthenticateLocalhost y demo.autoAuthenticatePublicDemo en false dentro de config/drmx.php, o desactive sus variables de proceso equivalentes. Use su propio inicio de sesión y comprobación actual de permisos; no use la lista de autorizaciones de la sesión de demostración como base de datos de compras. public/api/playback-session.php y playback-release.php gestionan la API de reproducción; conserve su validación de solicitudes y vinculación de contenido. Establezca la raíz pública del sitio en public/ y utilice el enrutamiento de su servidor web. El lanzador incluido es para pruebas locales.

Las funciones auxiliares del catálogo son demo_content_id(), demo_content_type(), player_playlist() y configured_content(). Para un sitio con varios vídeos, resuelva estos valores desde su catálogo existente; la comprobación de permisos debe validar esa selección exacta. No necesita sincronizar las compras con tablas de DRM-X. Las licencias DRM existentes tienen sus propios periodos de validez; las nuevas sesiones vuelven a comprobar la revocación.

Utilice el README incluido para la política completa, alojamiento, token-proxy y detalles nativos fuera de línea. Antes de la liberación, prueba la reproducción autorizada, denegada y revocada usuarios, sustitución de contenidos, Stop y sus navegadores compatibles sobre HTTPS.

Un Content ID, cualquier almacenamiento que utilice#

No necesita una URL de manifiesto en su integración de streaming. Para 1aicloud o un almacenamiento S3 configurado, DRM-X utiliza las URL de medios registradas al publicar el paquete. Si sube los archivos cifrados a su propio servidor, registre primero sus URL de medios DASH/HLS en DRM-X. Después utilice el mismo Content ID en PHP, ASP.NET o cualquier otra integración. Su servidor sigue comprobando los permisos actuales del usuario antes de solicitar la reproducción.

  1. Publicar o registrarse una vezDRM-X content settings

    Confirme las URLs de medios DASH/HLS protegidas correctas están registradas para su Content ID.

  2. Conecta tu sitio web

    Su callback de autorización

    Comprueba el inicio de sesión y la compra, la membresía o la inscripción. Devuelve el Content ID permitido.

  3. ReproducirDRM-X playback session

    DRM-X resuelve el paquete publicado y devuelve el manifiesto adecuado y DRM License Token.

Si falta el manifiesto registrado, corrija la publicación o el registro de URL de medios en DRM-X. No utilice una URL arbitraria enviada por el navegador como alternativa. El endpoint nativo sin conexión de la demostración PHP completa es un ejemplo avanzado independiente; su asociación manual actual se explica en advanced/OFFLINE.md.