DRM-X 6.0 · PHP integrationUniversal Playback Session Contract v1
Demo Viewer · automatic demo sign-in
Automatically signed in as Demo Viewer.

This demo account can play the sample videos automatically. Your own DRM-X account is not required.

Try the Universal Player

The demo starts automatically with sound off. Use Unmute to hear it. Build this experience with the PHP sample →

Start protected playback

A five-second introduction plays on each page opening, followed by your video. If automatic playback is unavailable, press Play.

Feature testing and reporting

Preview triple dynamic watermarks · 三重动态水印预览 — compare all three layers on your devices.

Try the playlist, audio tracks and CC on WayMaker, thumbnail seeking, themes, playback speed and fullscreen. Audio-only items use a music placeholder when artwork is unavailable. Repeat all advances through the playlist by default.

Open the advertisement testing lab — try 14 scenarios and inspect each result.

The advertisement plays once per page opening. Changing playlist videos does not repeat it. Choosing an ad type reloads the demo to try it.

Reporting events appear when playback starts. Quality summaries are sent through your authenticated reporting endpoint.

No events yet.

Customers receive the same event fields through Web drmxreport and Android player.onReport. Send them to your own authenticated reporting endpoint. Client events are observations, not proof for ad billing or course completion.

VOD advertising is available for testing on Web and Android/Google TV. iOS, Apple TV, Fire TV and other browser/device combinations require separate qualification; live ads and offline ads are not included.

Player log

Shows the simple playback lifecycle for integration testing. Credentials and DRM License Tokens are always redacted.

Ready. Press Play to request protected playback.
Browser

Sends Content ID and capabilities to the same-origin PHP route.

Customer PHP

Authenticates, authorizes, and calls DRM-X with protected credentials.

DRM-X

Returns the registered manifest, policy ceiling, release model, and short-lived DRM License Token.

PHP integration · English review edition

Keep your website. Connect its permission check.

Use the SDK example for a small integration, or download this complete demonstration website. Your server supplies the authorized Content ID; DRM-X and Universal Player handle protected playback.

How it works

No manifest URL is needed in your streaming integration. For 1aicloud or configured S3 storage, DRM-X uses the media URLs recorded when the package is published. For encrypted files uploaded to your own server, register their DASH/HLS media URLs in DRM-X first. Then use the same Content ID in PHP, ASP.NET or any other integration. Your server still checks the current user’s permission before requesting playback.

  1. Your website signs in the viewer. Keep your own customer account.
  2. Your server checks access. Resolve the lesson or purchase to the permitted DRM-X Content ID.
  3. DRM-X authorizes playback. Your server uses its credentials to request a playback session.
  4. Universal Player plays the video. Server credentials stay off the browser.

Run this complete demo with your video

  1. Extract the complete demo ZIP and open config/drmx.php.
  2. Set siteId, siteKey, accessKey and content.id using the same DRM-X environment. Choose vod or live and a policy matching your package. Keep the rest of the configuration.
  3. Run a launcher below, open http://127.0.0.1:8086/ and press Play.
# Windows PowerShell, inside the extracted folder:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run-local.ps1
# macOS / Linux:
bash ./run-local.sh
Only config/drmx.php needs changing for the first playback test. Supply Content ID to select your video; DRM-X returns its registered manifest automatically. The sample supplies a local demo viewer. Your production website needs the login and permission changes below.

What to change for your customers

1. Credentials and policy

config/drmx.php

Store server credentials and select your policy. Disable all demo login options before production.

2. Login and permission

src/bootstrap.php

Connect authenticated_user_id() and user_can_play_content() to your existing login and current access rules.

3. Content and player

src/bootstrap.php + public/index.php

Replace the demo catalog lookup with your own video mapping. Render the authorized Content ID and keep the server checks.

You do not need a second purchase, membership or enrollment database. The browser’s Content ID is a request, so your server must authorize it on every new session.