Your first protected video
Start DRM-X 6.0 protected Web playback: publish content, create least-privilege credentials, authorize a viewer, and load the registered manifest.
From your first video to protected playback
Encrypt a video, connect your backend, and test playback. Keep your Access Key on the server.
- Sign in
Open DRM-X Console and select your environment.
- Encrypt and publish
Package your video and wait until its status is Published.
- Create an API client
Grant only the license-tokens:create permission. Save the Access Key securely when it is shown.
- Configure your backend
Set the credentials and Content ID, choose playback rules, and check whether the user is allowed to watch.
- Test playback
Request a playback session through your backend. The player then requests a DRM license and plays the encrypted video.
Start with one source file. Package and publish it, check it in the DRM-X Web Player, then connect it to your website. You need a DRM-X customer account, a Development environment and a source video or audio file.
1. Publish one protected file#
- Choose an environment.Use Development while integrating. Keep Production credentials separate.
- Install the Packager.Download Packager Suite 1.0.0-beta.1 from Console → Package Content. Extract the entire ZIP and follow the Desktop Packager tutorial to connect a profile.
- Package and publish.Add one source and choose an empty output folder. For this first test, select Single Video Key Protection and use the single-software policy below. Use Multi-key Quality Tiered with multi-tier-standard when you later need separate quality-tier rules. Include 1080p and lower renditions if phones will have a 1080p cap.
- Wait for Published.Keep the Content ID and the environment used for packaging. A completed encode or upload count alone does not confirm publication.
Test in the DRM-X Web Player#
- Sign in.Open the DRM-X Web Player and use the DRM-X customer account that owns the content.
- Select your content.Choose the same environment used for packaging. Select the Published item from the content list and check its Title and Content ID.
- Start playback.Keep the detected key model and a matching policy, then press Play. The player requests a fresh DRM License Token.
- Check the result.Test seeking, sound, permitted quality, every audio language and subtitles. For audio-only content, check sound and the advancing playback clock. Press Stop when finished.
If the item is missing, confirm its environment and Published status. If playback fails, use playback troubleshooting before adding website integration. Your viewers use your own website login; they do not need a DRM-X Console account.
After integration, test both an entitled viewer and a viewer who must be denied. Check playback on the physical browsers and devices you support. Follow the optional phone-only 1080p procedure if you want to reduce mobile bandwidth while keeping UHD available elsewhere.
2. Create a least-privilege server integration#
After the Web Player test succeeds, follow Create server integration credentials. Create a Playback API client with only license-tokens:create. Keep its Site ID, Site Key and Access Key on your server.
Download the integration kit for your backend. For PHP, follow the PHP walkthrough. For the player component and optional phone limit, use the Web SDK guide.
Use a secret manager or protected environment configuration for production credentials. Never include the Access Key in browser JavaScript, an APK, an IPA, a TV app or a downloadable configuration file.
3. Change the three marked server settings#
// Server-side only
siteId: "your-development-environment-uuid"
siteKey: "drmx_your_environment_scoped_client_id"
accessKey: "paste-the-one-time-access-key"
contentId: "your-published-content-id"
licensePolicyTemplate: "single-software"Then replace the sample login and entitlement function with your real session, subscription, purchase, course enrollment, rental, or event-access check.
4. Request playback, then release it#
Create a new unpredictable session ID for each playback attempt. Return the successful session to the client with Cache-Control: no-store. Release the reservation on Stop, replacement, terminal error, and application shutdown.
- Never accept
subject, policy JSON, manifest URL, or license URL directly from the player. - Allow authorization headers only on the returned DRM license and FairPlay certificate routes.
- Record correlation IDs and stage outcomes, never tokens, keys, challenges, or license bytes.
DRM-X 6.0