DRM-X 6.0 logo de la colombe et de la branche d'oliveDRM-X 6.0Documentation
◎ Français

Exemples par langage backend

Comprendre le flux de lecture commun et trouver le callback exact à modifier dans Node.js, Django, Laravel, PHP, ASP.NET ou Java.

Voir le MarkdownExemples en ligneMis à jour le 2026-09-25

Votre site web décide qui peut regarder#

Gardez votre login, vos achats, votre adhésion et votre système d'inscription. Votre application fournit l'utilisateur actuel et le Content ID autorisé. Le SDK appelle DRM-X et le lecteur charge la vidéo protégée.

Une connexion à votre application existante

Vous gérez la connexion et la décision d’accès. Le SDK et le lecteur prennent en charge la lecture protégée.

  1. Gardez votre login

    Le spectateur se connecte sur votre site existant.

  2. Raccorder votre recherche de contenu

    Votre application vérifie l'accès et retourne le DRM-X Content ID pour la leçon sélectionnée.

  3. Appeler via le SDK

    Le SDK backend utilise les identifiants du serveur pour demander à DRM-X une lecture autorisée.

  4. Afficher le lecteur

    Le lecteur obtient une licence DRM et lit le contenu chiffré publié.

Comprendre les deux ID vidéo#

ValeurExempleProvenance
Identifiant vidéo du sitelesson-123Votre leçon, produit ou enregistrement vidéo.
DRM-X Content IDyour-published-content-idLe contenu protégé publié dans DRM-X.
Identifiant utilisateurcustomer-456Votre session de connexion authentifiée.

Associez votre leçon à son Content ID à l’aide de votre base de données, API ou code applicatif existant. Trouver une vidéo ne prouve pas que cet utilisateur peut la regarder ; vérifiez ses droits avant de la retourner.

Préparer une fois, puis intégrer#

  1. Chiffrez et publiez une vidéo, puis copiez son Content ID.
  2. Créer des identifiants de lecture pour le même environnement. Utilisez Site ID, Site Key et Access Key sur le serveur.
  3. Téléchargez le kit complet ou votre kit de plateforme. Installez son SDK en utilisant votre gestionnaire de paquets.
  4. Raccordez votre callback de vérification des droits de l’utilisateur sur le contenu, puis ajoutez le lecteur à la page.

Le SDK utilise des contenus déjà publiés. Il ne remplace ni l’outil de packaging ni votre système de paiement. L’installation des dépendances tierces peut nécessiter un accès Internet.

Choisissez votre langage#

Choisissez un langage pour afficher les emplacements à modifier.

Node.js / Express

Éditez votre application : server.mjs

Raccorder : authorize(userId, videoId)

Retourner une cartographie de contenu autorisée ou null. Lisez l'utilisateur à partir de votre intergiciel de connexion existant.

Ouvrir les commandes de tutoriel et d'installation →

Python / Django

Éditez votre application : authorization.py

Raccorder : authorize(user, video_id)

Retourner un dictionnaire avec content_id, ou None. Enregistrez-le sous DRMX['AUTHORIZE'] dans settings.py.

Ouvrir les commandes de tutoriel et d'installation →

PHP / Laravel

Éditez votre application : app/Services/DrmxAccess.php

Raccorder : ContentAuthorizer.authorize(user, videoId)

Retourner un tableau de contenu autorisé ou null. Relier votre service en AppServiceProvider.

Ouvrir les commandes de tutoriel et d'installation →

PHP sans framework

Éditez votre application : index.php

Raccorder : findAuthorizedVideo(userId, videoId)

Retourner un tableau de contenu autorisé ou null. Connectez votre identité de session PHP existante.

Ouvrir les commandes de tutoriel et d'installation →

C# / ASP.NET Core

Éditez votre application : Program.cs

Raccorder : QuickStartCatalog.FindAuthorizedVideoAsync

Retourner QuickStartVideo ou null. IDrmXContentEntitlement vérifie le Content ID demandé par rapport à ce résultat.

Ouvrir les commandes de tutoriel et d'installation →

C# / ASP.NET Framework

Éditez votre application : App_Code/DrmXPlayback.cs

Raccorder : ApplicationServices.Authorize

Retourner true uniquement pour un utilisateur autorisé, Content ID et le type de contenu. Il s'agit d'un adaptateur source pour Windows/IIS.

Ouvrir les commandes de tutoriel et d'installation →

Java / Spring Boot

Éditez votre application : DrmxAccess.java

Raccorder : ContentEntitlement.authorize(userId, videoId)

Retournez Optional<AuthorizedVideo> ou Optional.empty(). Raccordez le contrôleur et le bean d’autorisation à votre couche d’accès aux données existante.

Ouvrir les commandes de tutoriel et d'installation →

Configurer votre serveur#

ExemplesVariables d’environnement
Node, Django, Java, PHP SDK, LaravelDRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY
ASP.NET Core et ASP.NET FrameworkDRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY, DRMX_PLAYBACK_ACCESS_KEY

Chargez-les dans le processus serveur. Content ID est une valeur commerciale par vidéo; n'écrasez pas les identifiants partagés ou la configuration globale pour changer d'utilisateur ou de vidéo. Gardez la sélection de la politique sur le serveur.

PHP : connectez votre site web existant#

Télécharger ce kit de plateforme

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

  1. Configurer

    Environnement du serveur

    Définir DRMX_SITE_ID, DRMX_SITE_KEY et DRMX_ACCESS_KEY.

  2. Autoriserexamples/sdk/php/index.php

    Modifiez findAuthorizedVideo($userId, $videoId) et lisez l’identifiant utilisateur dans votre session existante.

  3. Intégrer

    Votre page de leçon

    Réutilisez le balisage du lecteur et conservez le videoId sélectionné dans l’endpoint de session.

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

Pour le premier essai, remplacer your-published-content-id à l'intérieur de findAuthorizedVideo. Ouvrez http://127.0.0.1:8106/?videoId=1 et utilisez la connexion de démo locale. PHP a besoin du support cURL et ZIP; utilisez PHP 8.2 ou une version ultérieure.

Dans votre application, remplacez la fonction de démonstration par votre recherche réelle. L’appel suivant à la couche d’accès aux données est un exemple ; implémentez-le avec votre base de données :

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'];
}

Lisez $userId depuis l’authentification habituelle côté serveur. Conservez les vérifications d’origine, la validation des requêtes et les contrôles exacts du contenu et du type de l’exemple. Choisissez une politique adaptée au contenu publié. PlaybackClient effectue la requête DRM-X ; il ne peut pas déduire vos règles d’achat.

Autres langues et intégration API#

Go, Ruby et les autres langages serveur peuvent appeler l’API de session de lecture après avoir authentifié l’utilisateur et vérifié ses droits sur le contenu. Cette version ne fournit pas de bibliothèques SDK pour Go ou Ruby. Privilégiez les SDK fournis pour les sept intégrations ci-dessus.

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.

PHP: exécutez le site de démonstration complet#

Essayer la démo PHP en ligne · Télécharger la démo PHP complète · SHA-256

Choisissez l'exemple PHP SDK ci-dessus pour une petite intégration basée sur Composer dans votre site web existant. Choisissez cette démo complète pour un site Web prêt à être lancé avec des exemples de playlist, de jeton-proxy et de diagnostic. La démo complète utilise un adaptateur source et nécessite PHP 8.2+ avec cURL, mais pas de Composer ou de base de données. Les deux approches conservent les identifiants sur votre serveur et nécessitent votre vérification d'autorisation.

  1. Première lectureconfig/drmx.php

    Définir siteId, siteKey, accessKey, content.id, content.type et un licensePolicyTemplate correspondant. Gardez le reste du tableau.

  2. Vos clientssrc/bootstrap.php

    Raccordez authenticated_user_id() à votre système de connexion ; remplacez user_can_play_content() par une vérification à jour des achats, de l’adhésion ou de l’inscription.

  3. Votre catalogue vidéosrc/bootstrap.php + public/index.php

    Remplacez les fonctions du catalogue de démonstration par votre recherche vidéo existante. Affichez uniquement un Content ID et un type autorisés ; conservez les contrôles serveur à chaque demande de session.

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

Ouvrez http://127.0.0.1:8086/ et cliquez sur Play. La lecture en ligne résout automatiquement le manifeste enregistré. La démo locale connecte un spectateur de test ; il s’agit seulement d’une première vérification de lecture.

Pour votre site, définissez demo.allowLogin, demo.autoAuthenticateLocalhost et demo.autoAuthenticatePublicDemo sur false dans config/drmx.php, ou désactivez leurs équivalents dans les variables du processus. Utilisez votre connexion et votre contrôle des droits actuels ; ne conservez pas la liste des droits de la session de démonstration comme base de données des achats. Les fichiers fournis public/api/playback-session.php et playback-release.php gèrent l’API de lecture ; conservez leur validation des requêtes et leur vérification du contenu. Définissez la racine publique sur public/ et utilisez le routage de votre serveur Web. Le lanceur intégré sert aux tests locaux.

Les assistants au catalogue sont demo_content_id(), demo_content_type(), player_playlist() et configured_content(). Pour un site multi-vidéo, résolvez ces valeurs à partir de votre catalogue existant; votre vérification d'autorisation doit valider cette sélection exacte. Vous n'avez pas besoin de synchroniser les achats dans les tables DRM-X. Les licences DRM existantes ont leur propre durée de vie; la révocation est revérifiée pour de nouvelles sessions.

Utilisez le README inclus pour la politique complète, l'hébergement, le token-proxy et les détails natifs hors ligne. Avant la sortie, testez la lecture autorisée, les utilisateurs refusés et révoqués, la substitution de contenu, Stop et vos navigateurs pris en charge sur HTTPS.

Un Content ID, quel que soit le stockage que vous utilisez#

Votre intégration de streaming ne nécessite aucune URL de manifeste. Pour 1aicloud ou un stockage S3 configuré, DRM-X utilise les URL de médias enregistrées à la publication du paquet. Pour des fichiers chiffrés transférés sur votre propre serveur, enregistrez d’abord leurs URL de médias DASH/HLS dans DRM-X. Utilisez ensuite le même Content ID avec PHP, ASP.NET ou toute autre intégration. Votre serveur doit toujours vérifier les droits actuels de l’utilisateur avant de demander la lecture.

  1. Publier ou enregistrer une foisDRM-X content settings

    Vérifiez que les bonnes URL de médias protégés DASH/HLS sont enregistrées pour votre Content ID.

  2. Connectez votre site Web

    Votre callback d’autorisation

    Vérifiez la connexion et l'achat, l'adhésion ou l'inscription. Retournez le Content ID autorisé.

  3. LireDRM-X playback session

    DRM-X résout le paquet publié et retourne le manifeste approprié et DRM License Token.

Si le manifeste enregistré est introuvable, corrigez la publication ou l’enregistrement des URL de médias dans DRM-X. N’utilisez pas une URL arbitraire fournie par le navigateur comme solution de repli. L’endpoint natif hors ligne de la démonstration PHP complète est un exemple avancé distinct ; son association manuelle actuelle est décrite dans advanced/OFFLINE.md.