Backend-Beispiele nach Programmiersprache
Verstehen Sie den gemeinsamen Wiedergabeablauf und finden Sie den anzupassenden Callback in Node.js, Django, Laravel, PHP, ASP.NET oder Java.
Ihre Website entscheidet, wer zuschauen kann#
Bewahren Sie Ihr Login, Einkäufe, Mitgliedschaft und Registrierungssystem auf. Ihre Anwendung liefert den aktuellen Benutzer und die autorisierte Content ID. Der SDK ruft DRM-X auf und der Player lädt das geschützte Video.
Eine Verbindung zu Ihrer bestehenden Anwendung
Sie verwalten die Anmeldung und entscheiden über die Zugriffsberechtigung. Das SDK und der Player übernehmen die geschützte Wiedergabe.
- Halten Sie Ihr Login
Der Betrachter meldet sich über Ihre bestehende Website an.
- Verbinden Sie Ihren Lookup
Ihre Anwendung prüft den Zugriff und gibt die DRM-X Content ID für die ausgewählte Lektion zurück.
- Über das SDK aufrufen
Das Backend SDK verwendet Serveranmeldeinformationen, um eine autorisierte Wiedergabe von DRM-X anzufordern.
- Player anzeigen
Der Player erhält eine DRM-Lizenz und spielt den veröffentlichten verschlüsselten Inhalt ab.
Verstehen Sie die beiden Video-IDs#
| Wert | Beispiel | Woher es kommt |
|---|---|---|
| Video-ID Ihrer Website | lesson-123 | Ihr Datensatz zur Lektion, zum Produkt oder zum Video. |
| DRM-X Content ID | your-published-content-id | Die geschützten Inhalte in DRM-X veröffentlicht. |
| Benutzer ID | customer-456 | Ihre authentifizierte Login-Sitzung. |
Weisen Sie Ihre Lektion dem Content ID zu, indem Sie Ihre vorhandene Datenbank, API oder Ihren Anwendungscode verwenden. Das Finden eines Videos beweist nicht, dass dieser Benutzer es ansehen kann; Überprüfen Sie die Berechtigung, bevor Sie es zurückgeben.
Einmal vorbereiten, dann integrieren#
- Verschlüsseln und veröffentlichen Sie ein Video und kopieren Sie dessen Content ID.
- Erstellen Sie Wiedergabe-Zugangsdaten für dieselbe Umgebung. Verwenden Sie Site ID, Site Key und Access Key auf dem Server.
- Laden Sie das komplette Kit oder Ihr Plattform-Kit herunter. Installieren Sie SDK mit Ihrem Paketmanager.
- Verbinden Sie Ihren user/content-Erlaubnis-Callback und fügen Sie dann den Player zu Ihrer Seite hinzu.
Das SDK arbeitet mit bereits veröffentlichten Inhalten. Es ersetzt nicht den Paketierer oder Ihr Zahlungssystem. Laufzeitabhängigkeiten von Drittanbietern benötigen möglicherweise während der Installation einen Internetzugang.
Programmiersprache auswählen#
Wählen Sie eine Programmiersprache, um die zu ändernden Stellen anzuzeigen.
Node.js / Express
Editieren Sie Ihre Anwendung: server.mjs
Anbinden: authorize(userId, videoId)
Geben Sie ein autorisiertes Content Mapping oder null zurück. Lesen Sie den Benutzer aus Ihrer vorhandenen Login-Middleware.
Python / Django
Editieren Sie Ihre Anwendung: authorization.py
Anbinden: authorize(user, video_id)
Geben Sie ein Wörterbuch mit content_id oder None zurück. Registrieren Sie es als DRMX['AUTHORIZE'] in settings.py.
PHP / Laravel
Editieren Sie Ihre Anwendung: app/Services/DrmxAccess.php
Anbinden: ContentAuthorizer.authorize(user, videoId)
Geben Sie ein autorisiertes Content-Array oder null zurück. Binden Sie Ihren Service in AppServiceProvider.
PHP ohne Framework
Editieren Sie Ihre Anwendung: index.php
Anbinden: findAuthorizedVideo(userId, videoId)
Geben Sie ein autorisiertes Content-Array oder null zurück. Verbinden Sie Ihre bestehende PHP-Sitzungsidentität.
C# / ASP.NET Core
Editieren Sie Ihre Anwendung: Program.cs
Anbinden: QuickStartCatalog.FindAuthorizedVideoAsync
Geben Sie QuickStartVideo oder null zurück. IDrmXContentEntitlement überprüft das angeforderte Content ID mit diesem Ergebnis.
C# / ASP.NET Framework
Editieren Sie Ihre Anwendung: App_Code/DrmXPlayback.cs
Anbinden: ApplicationServices.Authorize
Geben Sie true nur für einen autorisierten Benutzer, Content ID und Inhaltstyp zurück. Dies ist ein Quelladapter für Windows / IIS.
Java / Spring Boot
Editieren Sie Ihre Anwendung: DrmxAccess.java
Anbinden: ContentEntitlement.authorize(userId, videoId)
Geben Sie Optional<AuthorizedVideo> oder Optional.empty() zurück. Verbinden Sie den Controller und die Berechtigungs-Bean mit Ihrem bestehenden Repository.
Konfigurieren Sie Ihren Server#
| Beispiele | Umgebungsvariablen |
|---|---|
| Node, Django, Java, PHP SDK, Laravel | DRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY |
| ASP.NET Core und Framework | DRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY, DRMX_PLAYBACK_ACCESS_KEY |
Laden Sie diese Werte im Serverprozess. Die Content ID ist ein Wert pro Video. Überschreiben Sie keine gemeinsam genutzten Zugangsdaten oder globale Konfiguration, um zwischen Benutzern oder Videos zu wechseln. Die Richtlinienauswahl bleibt auf dem Server.
PHP: Verbinden Sie Ihre bestehende Website#
SDK in der Vorschauversion, Anwendungsbeispiel und Quellcode. Behalten Sie die entpackte Ordnerstruktur bei.
Alle Plattformen und vollständiges Kit · Den Integrationsablauf verstehen
- Konfigurieren
Serverumgebung
Setzen Sie DRMX_SITE_ID, DRMX_SITE_KEY und DRMX_ACCESS_KEY.
- Autorisieren
examples/sdk/php/index.phpBearbeiten Sie findAuthorizedVideo($userId, $videoId) und lesen Sie die Benutzer-ID aus Ihrer vorhandenen Sitzung.
- Einbettung
Ihre Unterrichtsseite
Verwenden Sie das Player-Markup erneut und behalten Sie das ausgewählte videoId im Sitzungsendpunkt bei.
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.phpErsetzen Sie für den ersten Test your-published-content-id innerhalb von findAuthorizedVideo. Öffnen Sie http://127.0.0.1:8106/?videoId=1 und verwenden Sie Local demo sign in. PHP benötigt cURL- und ZIP-Unterstützung; verwenden Sie PHP 8.2 oder neuer.
Ersetzen Sie für Ihre Anwendung die Demo-Funktion durch Ihren eigenen Lookup. Der folgende Repository-Aufruf ist illustrativ; Implementieren Sie ihn mit Ihrer Datenbank:
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'];
}Lesen Sie $userId aus Ihrer normalen serverseitigen Authentifizierung. Behalten Sie die Ursprungsprüfung, Anforderungsvalidierung und den genauen Vergleich von Inhalt und Typ aus dem Beispiel bei. Wählen Sie eine zum veröffentlichten Inhalt passende Richtlinie. PlaybackClient sendet die DRM-X-Anfrage, kann aber Ihre Kaufregeln nicht ableiten.
Andere Sprachen und API Integration#
Go, Ruby und andere Serversprachen können die Playback Session API aufrufen, nachdem der Benutzer authentifiziert und der Zugriff auf Inhalte überprüft wurde. Diese Version enthält keine Go oder Ruby SDK Bibliotheken. Bevorzugen Sie das verpackte SDK für die sieben oben genannten Integrationspfade.
Vor dem Produktivbetrieb prüfen#
- Melden Sie sich als erlaubter Benutzer an und spielen Sie ein veröffentlichtes Video in einem unterstützten Browser ab.
- Testen Sie abgemeldete Benutzer und Benutzer ohne Zahlung sowie widerrufene oder abgelaufene Berechtigungen. Neue Sitzungsanfragen müssen abgelehnt werden.
- Ändern Sie die Content ID im Browser oder die Video-ID Ihrer Website. Der Server muss die neue Auswahl prüfen.
- Legen Sie den genauen öffentlichen HTTPS-Ursprung fest, behalten Sie den session/CSRF-Schutz Ihres Frameworks bei und deaktivieren Sie den Demo-Identitätscode.
Bestehende Sitzungen und DRM-Lizenzen haben ihre eigene Lebensdauer. Berechtigungsänderungen werden bei neuen Anfragen überprüft; sie löschen keine bereits ausgestellte Lizenz.
PHP: Führen Sie die komplette Demonstrations-Website#
Die Online-PHP-Demo ausprobieren · Die vollständige PHP-Demo herunterladen · SHA-256
Wählen Sie das obige PHP SDK-Beispiel für eine kleine Composer-basierte Integration in Ihre bestehende Website. Die vollständige Demo bietet eine direkt ausführbare Website mit Playlist, Token-Proxy und Diagnosebeispielen. Sie verwendet einen Quellcode-Adapter und benötigt PHP 8.2+ mit cURL, aber weder Composer noch eine Datenbank. Beide Varianten halten die Zugangsdaten auf Ihrem Server und erfordern Ihre Berechtigungsprüfung.
- Erste Wiedergabe
config/drmx.phpSetzen Sie siteId, siteKey, accessKey, content.id, content.type und eine passende licensePolicyTemplate. Behalte den Rest des Arrays.
- Ihre Kunden
src/bootstrap.phpVerbinden Sie authenticated_user_id() mit Ihrer Anmeldung und ersetzen Sie user_can_play_content() durch eine aktuelle Prüfung von Kauf, Mitgliedschaft oder Kurseinschreibung.
- Ihr Videokatalog
src/bootstrap.php + public/index.phpErsetzen Sie die Demo-Katalog-Helfer mit Ihrem vorhandenen Video-Lookup. Rendern Sie nur einen autorisierten Content ID und Typ; behalten Sie serverseitige Überprüfungen bei jeder Sitzungsanfrage bei.
# Windows, inside the extracted drmx-php-sample folder:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run-local.ps1
# macOS / Linux:
bash ./run-local.shÖffnen Sie http://127.0.0.1:8086/ und drücken Sie Play. Die Online-Wiedergabe ermittelt das registrierte Manifest automatisch. Die lokale Demo meldet einen Testzuschauer an; dies dient nur zur ersten Wiedergabeprüfung.
Setzen Sie für Ihre Website demo.allowLogin, demo.autoAuthenticateLocalhost und demo.autoAuthenticatePublicDemo in config/drmx.php auf false oder deaktivieren Sie die entsprechenden Prozessvariablen. Verwenden Sie Ihre eigene Anmeldung und eine aktuelle Berechtigungsprüfung; verwenden Sie die Berechtigungsliste der Demositzung nicht als Kaufdatenbank. public/api/playback-session.php und playback-release.php bedienen die Wiedergabe-API; behalten Sie deren Anforderungsvalidierung und Inhaltsbindung bei. Setzen Sie das öffentliche Dokumentenverzeichnis auf public/ und verwenden Sie das Routing Ihres Webservers. Der mitgelieferte Starter dient nur lokalen Tests.
Katalog-Helfer sind demo_content_id(), demo_content_type(), player_playlist() und configured_content(). Bei einer Multi-Video-Website lösen Sie diese Werte aus Ihrem vorhandenen Katalog auf; Ihre Berechtigungsprüfung muss diese genaue Auswahl validieren. Sie müssen Käufe nicht in DRM-X-Tabellen synchronisieren. Bestehende DRM-Lizenzen haben ihre eigene Lebensdauer; der Widerruf wird für neue Sitzungen erneut überprüft.
Verwenden Sie das enthaltene README für vollständige Richtlinien, Hosting, Token-Proxy und native Offline-Details. Testen Sie vor der Veröffentlichung autorisierte Wiedergabe, verweigerte und widerrufene Benutzer, Inhaltssubstitution, Stop und Ihre unterstützten Browser über HTTPS.
Ein Content ID, unabhängig davon, welchen Speicher Sie verwenden#
Kein Manifest URL wird in Ihrer Streaming-Integration benötigt. Für 1aicloud oder konfigurierten S3-Speicher verwendet DRM-X die Medien-URLs, die bei der Veröffentlichung des Pakets aufgezeichnet werden. Für verschlüsselte Dateien, die auf Ihren eigenen Server hochgeladen werden, registrieren Sie zuerst ihre DASH/HLS Medien-URLs in DRM-X. Verwenden Sie dann das gleiche Content ID in PHP, ASP.NET oder einer anderen Integration. Ihr Server überprüft weiterhin die Berechtigung des aktuellen Benutzers, bevor Sie die Wiedergabe anfordern.
- Veröffentlichung oder Registrierung einmal
DRM-X content settingsBestätigen Sie, dass die korrekt geschützten DASH/HLS-Medien-URLs für Ihre Content ID registriert sind.
- Verbinden Sie Ihre Website
Ihr Callback zur Berechtigungsprüfung
Überprüfen Sie Login und Kauf, Mitgliedschaft oder Registrierung. Geben Sie das erlaubte Content ID zurück.
- Abspielen
DRM-X playback sessionDRM-X löst das veröffentlichte Paket auf und gibt das passende Manifest und DRM License Token zurück.
Fehlt das registrierte Manifest, korrigieren Sie die Veröffentlichung oder die Registrierung der Medien-URLs in DRM-X. Verwenden Sie keine beliebige vom Browser übermittelte URL als Ersatz. Der native Offline-Endpunkt der vollständigen PHP-Demo ist ein separates, erweitertes Beispiel; seine derzeitige manuelle Zuordnung ist in advanced/OFFLINE.md beschrieben.
DRM-X 6.0