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.
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.
- Mantenga su login
El espectador inicia sesión en su sitio web existente.
- Conecte su búsqueda
Su aplicación verifica el acceso y devuelve el DRM-X Content ID para la lección seleccionada.
- Llame a través de SDK
El backend SDK utiliza credenciales del servidor para solicitar la reproducción autorizada desde DRM-X.
- Mostrar el reproductor
El reproductor obtiene una licencia DRM y reproduce el contenido cifrado publicado.
Comprender los dos IDs de vídeo#
| Valor | Ejemplo | De donde viene |
|---|---|---|
| ID de vídeo del sitio | lesson-123 | Su lección, producto o vídeo. |
| DRM-X Content ID | your-published-content-id | El contenido protegido publicado en DRM-X. |
| ID de usuario | customer-456 | Tu 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#
- Cifre y publique un vídeo y copie su Content ID.
- Crear credenciales de reproducción para el mismo ambiente. Utilice Site ID, Site Key y Access Key en el servidor.
- Descargue el kit completo o su kit de plataforma. Instale su SDK usando su administrador de paquetes.
- 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.
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.
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.
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.
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.
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.
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.
Configure su servidor#
| Ejemplos | Variables de entorno |
|---|---|
| Node, Django, Java, PHP SDK, Laravel | DRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY |
| ASP.NET Core y ASP.NET Framework | DRMX_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#
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
- Configuración
Entorno del servidor
Establezca DRMX_SITE_ID, DRMX_SITE_KEY y DRMX_ACCESS_KEY.
- Autorizar
examples/sdk/php/index.phpEdite findAuthorizedVideo($userId, $videoId) y lea el ID de usuario de su sesión existente.
- 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.phpPara 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.
- Primera reproducción
config/drmx.phpEstablezca siteId, siteKey, accessKey, content.id, content.type y un licensePolicyTemplate compatible. Conserve el resto del array.
- Sus clientes
src/bootstrap.phpConecte 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.
- Tu catálogo de vídeo
src/bootstrap.php + public/index.phpSustituya 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.shAbra 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.
- Publicar o registrarse una vez
DRM-X content settingsConfirme las URLs de medios DASH/HLS protegidas correctas están registradas para su Content ID.
- 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.
- Reproducir
DRM-X playback sessionDRM-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.
DRM-X 6.0