Skip to main content

Nimble Streamer integration

This guide explains how to integrate Nimble Streamer with the Cloud DRM service to enable Widevine, FairPlay, and PlayReady encryption for your streaming content.


Overview

Nimble Streamer supports DRM integration using a drm.conf configuration file. You can use the Cloud DRM service to provide the necessary keys and encryption configurations via the SPEKE2 API.

Cloud DRM credentials and the SPEKE2 API URL can be obtained from the Cloud DRM Web Console.


Step 1: Obtain Cloud DRM Credentials and SPEKE2 API URL

  1. Log in to the Cloud DRM Web Console.
  2. Navigate to:
    • DRM β†’ Configuration β†’ KMS β†’ Authentication β†’ Basic Auth for your login credentials.
    • DRM β†’ Configuration β†’ KMS β†’ API β†’ SPEKE2 for the API URL.

Credentials Location in Cloud Video Kit

Basic Auth in Web Console
Basic Auth Credentials Table


Step 2: Configure drm.conf

Create or edit the drm.conf file in the same directory as your Nimble configuration file (e.g., /etc/nimble/ on Linux).

Add a drm {} block containing the necessary parameters for Cloud DRM.

Sample drm.conf File

drm {
application = live_drm
type = cloud_drm
keyserver = <SPEKE_2_API_URL>
cloud_drm_login = <basic_auth_login>
cloud_drm_password = <basic_auth_password>
content_id = 1232345-8602-11ea-b04b-7fccdabcdef1
content_ids {
stream1 = 1232345-8602-11ea-b04b-7fccdabcdef2
stream2 = 1232345-8602-11ea-b04b-7fccdabcdef3
}
}

Parameter Details

Mandatory Parameters:

  • keyserver: The SPEKE 2 API URL from the Cloud DRM console.
  • cloud_drm_login: Your Basic Auth username.
  • cloud_drm_password: Your Basic Auth password.
  • content_id: A unique identifier for your content.

Optional Parameters:

  • widevine_hls_enabled = true: Enables Widevine protection for HLS streams.
  • content_ids: Defines unique IDs for individual streams. Example:
content_ids {
stream1 = 1232345-8602-11ea-b04b-7fccdabcdef2
stream2 = 1232345-8602-11ea-b04b-7fccdabcdef3
}

Step 3: Apply the Configuration

After editing the drm.conf file:

  1. Restart Nimble Streamer Restart Nimble Streamer to apply the changes:
sudo service nimble restart
  1. (Optional) Apply Changes via API Alternatively, you can use Nimble Streamer’s native API to apply the configuration without restarting.

Step 4: Verify the Setup

Confirm that Nimble Streamer is successfully using the DRM settings:

  1. Check Nimble Streamer logs for any errors related to the DRM configuration.
  2. Stream your content and verify the encryption using player-specific tools.

Notes on Advanced Configurations

For advanced configurations like using unique content IDs for each stream, refer to Nimble Streamer’s documentation:


Troubleshooting

If you encounter issues:

  1. Ensure the drm.conf file is correctly formatted.
  2. Verify the API URL and credentials from the Cloud DRM console.
  3. Check Nimble Streamer logs for detailed error messages.