DRM-X 6.0 dove and olive branch logoDRM-X 6.0Docs
◎ English

Integration center and downloads

Keep your existing login and database. Download the complete integration kit or one platform, then follow the visual edit map to connect protected playback.

View MarkdownLive examplesUpdated 2026-09-25

Choose a download#

Download complete integration kit

Release 20260925.7 · backend SDK 1.3.0-preview.9. Includes nine SDK artifacts, examples, source adapters, player components and plugin installers.

Extract to a short path such as C:\drmx. Open START-HERE.html, or go directly to examples/sdk/<your-language>/README.md. Individual kits keep the same paths used in this tutorial.

Your website decides who can watch#

Keep your login, purchases, membership and enrollment system. Your application supplies the current user and the authorized Content ID. The SDK calls DRM-X and the player loads the protected video.

One connection to your existing application

You own the login and permission decision. The SDK and player handle protected playback.

  1. Keep your login

    The viewer signs in through your existing website.

  2. Connect your lookup

    Your application checks access and returns the DRM-X Content ID for the selected lesson.

  3. Call through the SDK

    The backend SDK uses server credentials to request authorized playback from DRM-X.

  4. Show the player

    The player obtains a DRM license and plays the published encrypted content.

Understand the two video IDs#

ValueExampleWhere it comes from
Website video IDlesson-123Your lesson, product or video record.
DRM-X Content IDyour-published-content-idThe protected content published in DRM-X.
User IDcustomer-456Your authenticated login session.

Map your lesson to its Content ID using your existing database, API or application code. Finding a video does not prove that this user may watch it; check permission before returning it.

Prepare once, then integrate#

  1. Encrypt and publish one video and copy its Content ID.
  2. Create playback credentials for the same environment. Use Site ID, Site Key and Access Key on the server.
  3. Download the complete kit or your platform kit. Install its SDK using your package manager.
  4. Connect your user/content permission callback, then add the player to your page.

The SDK operates on already-published content. It does not replace the packager or your payment system. Third-party runtime dependencies may need internet access during installation.

Find the code you own#

Choose a language to focus the edit map.

Node.js / Express

Edit your application: server.mjs

Connect: authorize(userId, videoId)

Return an authorized content mapping or null. Read the user from your existing login middleware.

Open tutorial and installation commands →

Python / Django

Edit your application: authorization.py

Connect: authorize(user, video_id)

Return a dictionary with content_id, or None. Register it as DRMX['AUTHORIZE'] in settings.py.

Open tutorial and installation commands →

PHP / Laravel

Edit your application: app/Services/DrmxAccess.php

Connect: ContentAuthorizer.authorize(user, videoId)

Return an authorized content array or null. Bind your service in AppServiceProvider.

Open tutorial and installation commands →

Plain PHP

Edit your application: index.php

Connect: findAuthorizedVideo(userId, videoId)

Return an authorized content array or null. Connect your existing PHP session identity.

Open tutorial and installation commands →

C# / ASP.NET Core

Edit your application: Program.cs

Connect: QuickStartCatalog.FindAuthorizedVideoAsync

Return QuickStartVideo or null. IDrmXContentEntitlement verifies the requested Content ID against that result.

Open tutorial and installation commands →

C# / ASP.NET Framework

Edit your application: App_Code/DrmXPlayback.cs

Connect: ApplicationServices.Authorize

Return true only for an authorized user, Content ID and content type. This is a source adapter for Windows/IIS.

Open tutorial and installation commands →

Java / Spring Boot

Edit your application: DrmxAccess.java

Connect: ContentEntitlement.authorize(userId, videoId)

Return Optional<AuthorizedVideo> or Optional.empty(). Connect the controller and entitlement bean to your existing repository.

Open tutorial and installation commands →

Download for your language#

WordPress and Moodle#

For standard LMS flows, install the plugin and set credentials and lesson Content IDs in the platform administration screens. Keep its normal enrollment rules.

WordPress install ZIP · Moodle activity ZIP · Optional Moodle filter ZIP

WordPress setup · Moodle setup

WordPress uses one shared plugin for LearnDash, LearnPress, Tutor LMS, Sensei and MasterStudy. Install it once.

WordPress LMS and Moodle source downloads

LearnPress · GitHub · LearnDash · GitHub · Tutor LMS · GitHub · Sensei · GitHub · MasterStudy · GitHub · Moodle · GitHub

Frontend components and hosted platforms#

All source adapters — for customers choosing source-copy integration.

React / Next.js / Vue components · GitHub · LTI / hosted learning / Shopify bridges · GitHub

Frontend components use one authenticated backend above. Hosted-platform bridges require platform registration and server-owned content mappings; follow the LTI, hosted learning or Shopify guide.

Preview versions and checksums#

Packages are preview releases. ASP.NET Framework remains source-only; Laravel supplies an installation recipe for your existing app. Public package-registry installation is not required: SDK files are included.

Release manifest · SHA-256 checksums

Older versioned downloads remain available. GitHub repositories are now available. Choose your target browsers and hosting environment for acceptance before production.

WordPress and Moodle: configure in your admin screens#

The complete kit includes WordPress preview.7, Moodle activity preview.6 and optional filter preview.2. You do not need to write a backend callback for the built-in LMS adapters.

WordPress and LMS visual setup · LearnDash lesson setup · Moodle activity setup

Customer downloads contain SDKs, examples, installers, licenses, checksums and customer guides. Start with README.md; see RELEASE-NOTES.md and COMPATIBILITY.md for versions and limits.

One Content ID, whichever storage you use#

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. Publish or register onceDRM-X content settings

    Confirm the correct protected DASH/HLS media URLs are registered for your Content ID.

  2. Connect your website

    Your authorization callback

    Check login and purchase, membership or enrollment. Return the permitted Content ID.

  3. PlayDRM-X playback session

    DRM-X resolves the published package and returns the suitable manifest and DRM License Token.

If the registered manifest is missing, correct the publication or media URL registration in DRM-X. Do not add an arbitrary browser-supplied URL as a fallback. The complete PHP demo’s native offline endpoint is a separate advanced example; its current manual mapping is documented in advanced/OFFLINE.md.