バックエンド言語別サンプル
共通の再生フローを理解し、Node.js、Django、Laravel、PHP、ASP.NET、Java のどのコールバックを変更するか確認します。
あなたのウェブサイトは誰が見ることができるかを決めます#
ログイン、購入、会員、受講登録のシステムを維持します。アプリが現在のユーザーとアクセスを許可した Content ID を渡し、SDK が DRM-X を呼び出してプレーヤーが保護された動画を読み込みます。
既存のアプリケーションへの1つの接続
ログインとアクセス可否の判断はお客様が管理します。SDK とプレーヤーは保護された再生を処理します。
- 既存のログインを維持
視聴者は既存のウェブサイトでログインします。
- コンテンツ検索を接続
アプリはアクセス権を確認し、選択したレッスンの DRM-X Content ID を返します。
- SDK 経由で呼び出す
バックエンドSDKは、サーバーの認証情報を使用して、DRM-Xから認証された再生を要求します。
- プレイヤーを表示する
プレーヤーは、DRMライセンスを取得し、公開された暗号化されたコンテンツを再生します。
2つのビデオIDを理解する#
| 値 | 例 | 値の取得元 |
|---|---|---|
| ウェブサイトのビデオ ID | lesson-123 | お客様のレッスン、商品、動画のレコード。 |
| DRM-X Content ID | your-published-content-id | DRM-Xで公開されている保護されたコンテンツ。 |
| ユーザー ID | customer-456 | 認証されたログインセッション。 |
既存のデータベース、API、またはアプリケーションコードを使用して、そのContent IDにレッスンをマップします。 ビデオを見つけると、このユーザーがそれを見ることができることを証明しません。 それを返す前に許可を確認してください。
一度準備し、それから統合して下さい#
- 動画を1本暗号化して公開し、その Content ID をコピーします。
- 同じ環境の再生用資格情報を作成します。Site ID、Site Key、Access Key はサーバーで使用します。
- 完全なキットかあなたのプラットホームのキットをダウンロードして下さい。 パッケージマネージャでSDKをインストールします。
- ユーザーとコンテンツの権限チェック用コールバックを接続し、ページにプレーヤーを追加します。
SDK は公開済みのコンテンツを扱います。パッケージャーや決済システムの代わりにはなりません。サードパーティーのランタイム依存関係をインストールする際には、インターネット接続が必要な場合があります。
プログラミング言語を選択#
プログラミング言語を選択すると、その修正箇所を確認できます。
Node.js / Express
アプリの修正箇所: server.mjs
接続する処理: authorize(userId, videoId)
アクセスが許可されたコンテンツの関連付け、または null を返します。既存のログインミドルウェアからユーザーを取得します。
Python / Django
アプリの修正箇所: authorization.py
接続する処理: authorize(user, video_id)
content_id を含む辞書、または None を返します。settings.py の DRMX['AUTHORIZE'] に登録します。
PHP / Laravel
アプリの修正箇所: app/Services/DrmxAccess.php
接続する処理: ContentAuthorizer.authorize(user, videoId)
アクセスが許可されたコンテンツの配列、または null を返します。AppServiceProvider でサービスをバインドします。
プレーンPHP
アプリの修正箇所: index.php
接続する処理: findAuthorizedVideo(userId, videoId)
アクセスが許可されたコンテンツの配列、または null を返します。既存の PHP セッションのユーザー識別情報を接続します。
C# / ASP.NET Core
アプリの修正箇所: Program.cs
接続する処理: QuickStartCatalog.FindAuthorizedVideoAsync
QuickStartVideo または null を返します。 IDrmXContentEntitlementは、その結果に対して要求されたContent IDを検証します。
C# / ASP.NET Framework
アプリの修正箇所: App_Code/DrmXPlayback.cs
接続する処理: ApplicationServices.Authorize
ユーザー、Content ID、コンテンツの種類へのアクセスがすべて許可された場合だけ true を返します。これは Windows/IIS 用のソースアダプターです。
Java / Spring Boot
アプリの修正箇所: DrmxAccess.java
接続する処理: ContentEntitlement.authorize(userId, videoId)
Optional<AuthorizedVideo> または Optional.empty() を返します。コントローラーと認可用 bean を既存のリポジトリに接続します。
サーバの設定#
| サンプル | 環境変数 |
|---|---|
| Node, Django, Java, PHP SDK, Laravel | DRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY |
| ASP.NET Core と ASP.NET Framework | DRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY, DRMX_PLAYBACK_ACCESS_KEY |
これらの値をサーバープロセスで読み込みます。Content ID は動画ごとの業務データです。ユーザーや動画の切り替えのために共有資格情報やグローバル設定を上書きしないでください。ポリシーの選択はサーバー側で行います。
PHP:あなたの既存のウェブサイトを接続して下さい#
プレビュー版 SDK、アプリのサンプル、ソースが含まれます。展開後のフォルダー構造を維持してください。
- 設定
サーバー環境
DRMX_SITE_ID、DRMX_SITE_KEY、DRMX_ACCESS_KEYを設定します。
- 認可
examples/sdk/php/index.phpfindAuthorizedVideo($userId, $videoId) を編集し、既存のセッション ユーザー ID を読み込みます。
- 埋め込み
レッスンページ
プレーヤーのマークアップを再利用し、セッションエンドポイントで選択したvideoIdを保持します。
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最初のテストでは findAuthorizedVideo 内の your-published-content-id を置き換えます。http://127.0.0.1:8106/?videoId=1 を開き、Local demo sign in を使います。PHP には cURL と ZIP サポートが必要です。PHP 8.2 以降を使用してください。
実際のアプリでは、デモ関数を独自の検索に置き換えます。以下のリポジトリ呼び出しは例なので、お客様のデータベースで実装してください。
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'];
}通常のサーバー側認証から $userId を読み取ります。例にあるオリジン、リクエスト検証、正確なコンテンツと種類のチェックを維持します。公開済みコンテンツに合うポリシーを選んでください。PlaybackClient は DRM-X リクエストを実行しますが、お客様の購入規則を推測することはできません。
その他の言語とAPIの統合#
Go、Ruby などのサーバー言語でも、ユーザー認証とコンテンツへのアクセスチェックを行った後に再生セッション APIを呼び出せます。このリリースには Go や Ruby の SDK ライブラリは含まれません。上記7種類の統合では同梱 SDK を優先してください。
本番公開前の確認#
- 許可されたユーザーとしてサインインし、サポートされているブラウザーで公開された動画を再生します。
- 未ログインと未払いのユーザーを試し、権限の取り消しと期限切れもテストします。新規セッション要求は拒否される必要があります。
- ブラウザContent IDまたはWebサイトのビデオIDを変更します。 サーバは新しい選択を点検しなければなりません。
- 公開 HTTPS オリジンを正確に設定し、フレームワークのセッション/CSRF 保護を維持して、デモ用のユーザー識別コードを無効にしてください。
既存のセッションと DRM ライセンスには独自の有効期間があります。新しいリクエストでは権限の変更を確認しますが、発行済みのライセンスを消去するわけではありません。
PHP:完全なデモのウェブサイトを実行します#
オンライン PHP デモを試す · 完全版 PHP デモをダウンロード · SHA-256
既存サイトに Composer ベースで小規模に組み込む場合は、上の PHP SDK サンプルを選びます。すぐに動くサイトと、プレイリスト、トークンプロキシ、診断の例が必要なら完全版デモを選びます。完全版デモはソースアダプターを使い、PHP 8.2+ と cURL が必要ですが、Composer やデータベースは不要です。どちらも資格情報をサーバーに保持し、お客様の権限チェックを必要とします。
- 最初の再生
config/drmx.phpsiteId、siteKey、accessKey、content.id、content.type、および一致するlicensePolicyTemplateを設定します。 配列の残りを保ちましょう。
- あなたの顧客
src/bootstrap.phpauthenticated_user_id() をログインに接続し、user_can_play_content() を最新の購入・会員資格・受講登録チェックに置き換えます。
- あなたのビデオカタログ
src/bootstrap.php + public/index.phpデモカタログのヘルパーを既存のビデオのルックアップに置き換えます。 認可されたContent IDおよびタイプだけをレンダリングして下さい;あらゆるセッション要求のサーバー側の点検を保って下さい。
# Windows, inside the extracted drmx-php-sample folder:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run-local.ps1
# macOS / Linux:
bash ./run-local.shhttp://127.0.0.1:8086/ を開き、Play を押します。オンライン再生では登録済みマニフェストが自動的に解決されます。ローカルデモはテスト視聴者をログインさせます。これは最初の再生確認用です。
実際のサイトでは config/drmx.php の demo.allowLogin、demo.autoAuthenticateLocalhost、demo.autoAuthenticatePublicDemo を false に設定するか、対応するプロセス変数を無効化します。独自のログインと最新の権限チェックを使い、デモセッションの権限リストを購入データベースとして使わないでください。同梱の public/api/playback-session.php と playback-release.php が再生 API を処理します。リクエスト検証とコンテンツのバインドを維持してください。公開ドキュメントルートを public/ に設定し、Web サーバーのルーティングを使用します。内蔵ランチャーはローカルテスト用です。
カタログ用ヘルパーは demo_content_id()、demo_content_type()、player_playlist()、configured_content() です。複数動画のサイトでは既存カタログから値を取得し、権限チェックでその選択を正確に検証します。購入記録を DRM-X テーブルに同期する必要はありません。既存の DRM ライセンスには独自の有効期間があり、新しいセッションでは権限の取り消しを再確認します。
ポリシー、ホスティング、トークンプロキシ、ネイティブオフラインの詳細は同梱 README を確認します。公開前に HTTPS と対象ブラウザーで、許可された再生、アクセス拒否と権限取り消し、コンテンツの差し替え、Stop をテストしてください。
どのストレージでも Content ID だけで統合#
ストリーミングの統合コードにマニフェスト URL を入力する必要はありません。1aicloud または設定済み S3 ストレージでは、DRM-X がパッケージ公開時に記録したメディア URL を使用します。暗号化ファイルを自社サーバーへアップロードした場合は、先にその DASH/HLS メディア URL を DRM-X に登録します。その後、PHP、ASP.NET、その他の統合で同じ Content ID を使えます。再生を要求する前に、サーバーは現在のユーザーの権限を引き続き確認します。
- 一度の公開または登録
DRM-X content settings正しい保護されたDASH/HLSメディアURLがContent IDに登録されていることを確認します。
- ウェブサイトの接続
独自の権限確認コールバック
ログイン状態と購入・会員資格・受講登録を確認し、許可された Content ID を返します。
- 再生
DRM-X playback sessionDRM-Xは公開されたパッケージを解決し、適切なマニフェストとDRM License Tokenを返します。
登録済みのマニフェストが見つからない場合は、DRM-X の公開設定またはメディア URL 登録を修正します。ブラウザーから渡された任意の URL を代替として使用しないでください。完全版 PHP デモのネイティブオフライン用エンドポイントは別の高度なサンプルです。現在必要な手動関連付けは advanced/OFFLINE.md に記載されています。
DRM-X 6.0