Set up castLabs DRMtoday secure video delivery in Wowza Streaming Engine

This article describes how to set up a plugin for the castLabs DRMtoday service in Wowza Streaming Engine™ media server software to automatically deliver secured MPEG-DASH and HLS video content from your Wowza Streaming Engine media server. The DRMtoday service provides licensing for all major DRM systems, enabling you to adopt multiple studio-recognized DRM systems from the single plugin integration.

Notes:
  • Wowza Streaming Engine 4.5.0 or later is required.
  • Wowza Streaming Engine 4.8.0 removed the Google protobuf library, which is required by the castLabs DRMtoday plugin. To use the castLabs DRMtoday service with Wowza Streaming Engine 4.8.0 or later, you must download the protobuf-java-3.7.1.jar file and copy and paste it into your Wowza Streaming Engine [install-dir]/lib directory.

Contents


Enable DRMtoday secure video content delivery in Wowza Streaming Engine streaming applications

Streaming secured content using DRMtoday

More resources

Enable DRMtoday secure delivery in Wowza Streaming Engine applications


The DRMtoday service provides licensing for all major DRM systems, enabling you to adopt multiple studio-recognized DRM systems from a single DRMtoday plugin integration. To get the latest version of the plugin, use your castLabs account to login to the castLabs Download Portal and download drmtoday-wowza-plugin-[latest-version].jar to the lib folder of your Wowza Streaming Engine installation ([install-dir]/lib).

 


Notes:

Set up DRMtoday for Wowza Streaming Engine

Choose a live or VOD streaming application in Wowza Streaming Engine Manager to use with the DRMtoday service for secure streaming, and then configure the DRMtoday plugin using the procedures in this section.

 


Important: If you previously configured the legacy DRMtoday plugin (JAR file version 1.x.x) for the selected streaming application, you can upgrade the plugin to the latest version (JAR file version 2.x.x). See the DRMtoday documentation Migrating from legacy versions (V1.x.x to V2.x.x) for instructions. (You must login with a DRMtoday account to access these instructions.)

If you don't want to upgrade the legacy plugin to the latest version, choose a different streaming application (creating one if necessary) to use with the current plugin version.

To enable the DRMtoday plugin

  1. On the Applications tab in Wowza Streaming Engine Manager, click the application name in the contents panel.
     
  2. On the application details page, click the Modules tab.
     

    Note: Access to the Modules tab requires an administrator user with advanced permissions. To set up permissions, see Manage credentials.
  3. Click Edit and then click the Add Module button.
     
  4. In the Add New Module dialog box, complete the required fields:
     
    • Name - Enter DRMtoday
       
    • Description - Enter DRMtoday
       
    • Fully Qualified Class Name - Enter com.castlabs.drmtoday.wowza.v2.module.ModuleDRMtoday
  5. Click Add, then click Save, and then restart the application to apply the changes.
After adding the DRMtoday plugin to the Modules list in Wowza Streaming Engine, you can adjust the default settings for the plugin by adding properties to the application configuration.

To configure the DRMtoday plugin

  1. On the Applications tab in Wowza Streaming Engine Manager, click the application name in the contents panel.
     
  2. On the application details page, click the Properties tab.
     
  3. In the Quick Links bar, click Custom, and then in the Custom properties area, click Edit.
     
  4. For each property in the following table, click the Add Custom Property button, specify the indicated property settings in the Add Custom Property dialog box, and then click Add.
     
    Path
    Name
    Type
    Value
    /Root/Applicationdt_userStringThe ingest user at DRMtoday. You should create a single Wowza media server API user that gets ingest rights.
    /Root/Applicationdt_passwordStringThe dt_user password.
    /Root/Applicationdt_merchantStringYour DRMtoday merchant ID.
    /Root/Applicationdt_envStringThe DRMtoday environment, either STAGING or PROD.
    /Root/Applicationdt_keyseed_idStringThe ID of the keyseed that's used to derive the keys.
     

    Important: You must configure a keyseed in DRMtoday for use with this property. See the DRMtoday documentation Server-side key derivation for instructions. (You must login with a DRMtoday account to access these instructions.)
    /Root/Applicationdt_ivseed_idStringThe ID of the keyseed that's used to derive the Initialization Vectors (IVs) for Apple FairPlay license delivery.
     

    Important: You must configure a keyseed in DRMtoday for use with this property. See the DRMtoday documentation Server-side key derivation for instructions. (You must login with a DRMtoday account to access these instructions.)[/URL].
    /Root/Applicationdt_cupertino_encryption_methodStringOne of the following encryption methods for HLS streams: FAIRPLAY, AES_128, or SAMPLE_AES.
     

    Note: If you specify the FAIRPLAY encryption method, you must set the cupertinoExtXVersion property value to 5.
    /Root/ApplicationcupertinoEncryptionAPIBasedBooleanSet to true.
    /Root/ApplicationcupertinoExtXVersionIntegerImportant: Only add this property if you specify the FAIRPLAY encryption method for the dt_cupertino_encryption_method property. Set the value to 5.
  5. Click Save, and then restart the application to apply the changes.

Streaming secured content using DRMtoday


After you finish DRMtoday plugin setup for Wowza Streaming Engine, the plugin will automatically encrypt all content delivered from the application for which it's configured. When a player requests the manifest for a stream for the first time, the Wowza Streaming Engine application becomes active and the DRMtoday plugin will ingest the Common Encryption (CENC) key pair. If an issue (for example, no Internet access to the drmtoday.com domain or DRMtoday outage) causes key ingest into DRMtoday to fail, unencrypted content will never leave the Wowza media server. In this case, the player can't request a valid key for decryption, playback will fail, and an error message will be written to the wowzastreamingengine_error log file in [install-dir]/logs.

 


Note: The very first time the DRMtoday plugin is used for an application after a streaming manifest is requested, the plugin registers the Wowza media server application for the DRMtoday merchant account it's configured for. This process can take up to one minute to be reflected in the global DRMtoday license delivery system.

More resources