Qencode + EZDRM

Encrypt with Widevine, FairPlay, and PlayReady through EZDRM — simple per-license pricing, no infrastructure to manage.

Overview

What This Integration Does

Qencode integrates with EZDRM's Universal DRM platform to deliver Widevine, FairPlay, and PlayReady encryption in a single transcoding workflow. Qencode handles encoding and packaging; EZDRM provides the key server and license delivery. EZDRM's straightforward per-license pricing model makes it a good fit for teams that want DRM protection without complex volume-based negotiations or upfront commitments.

Architecture

How the Integration Works

Source

Any storage or URL

Qencode ingests your source video from any storage provider or URL.

Encode & Encrypt

Encode & Encrypt

Qencode transcodes the video and requests encryption keys from EZDRM's key server during packaging.

Package

Key & license server

Qencode writes encrypted HLS and/or DASH output with EZDRM-managed keys to your storage.

Playback

Licensed playback

The viewer's device requests a license from EZDRM. EZDRM validates and delivers the decryption key.

Getting Started

Setup Steps

  1. Set up your EZDRM account

    Register for an EZDRM account and obtain your license server endpoints for Widevine, FairPlay, and/or PlayReady.

    This step is completed in the EZDRM portal — see EZDRM documentation

  2. Configure DRM provider in Qencode

    In the Qencode dashboard, go to Settings → DRM and add your EZDRM license server endpoints and authentication credentials.

  3. Enable DRM in your transcode request

    Add the cenc_drm parameter to your format array, specifying the DRM systems and EZDRM as the provider.

  4. Test playback

    Use a test player (Shaka Player for Widevine/PlayReady, Safari for FairPlay) to verify license acquisition and encrypted playback across all target DRM systems.

Implementation

Code Example

Request Example

Widevine DRM via EZDRM

{
  "query": {
    "source": "https://your-storage.com/video.mp4",
    "format": [
      {
        "output": "advanced_dash",
        "destination": {
          "url": "s3://YOUR_BUCKET/path/to/output/",
          "key": "YOUR_STORAGE_KEY",
          "secret": "YOUR_STORAGE_SECRET"
        },
        "stream": [
          {
            "video_codec": "libx264",
            "audio_codec": "aac",
            "width": 1280,
            "height": 720,
            "bitrate": 3000,
            "audio_bitrate": 128
          }
        ],
        "cenc_drm": {
          "key_id": "e2b281bafba58760cfa65ae6f3ddd630",
          "key": "c608c2426e4e7520b8b50f0b825f6e52",
          "pssh": "AAAAUXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADEIARIQ4rKBuvulh2DPplrm893WMBoKZG92ZXJ1bm5lciIPdGVzdC1jb250ZW50LTAx"
        }
      }
    ]
  }
}

Replace placeholder credentials with your actual EZDRM API key and endpoint. Use environment variables in production.

For a step-by-step walkthrough, see Tutorial: EZDRM - Widevine, EZDRM - Playready, EZDRM - Fairplay

We love creating powerful solutions that are aligned with the needs of your business.

Please send us a message if you have a question or Schedule a call for a demo to discuss your integration.

Let's talk

First Name
Last Name
Company
Email
Your Message

Contact us with any questions. We'd love to help.

Los Angeles, CA - (HQ)

San Francisco, CA

New York, NY