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
- Log in to the Cloud DRM Web Console.
- 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
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:
- Restart Nimble Streamer Restart Nimble Streamer to apply the changes:
sudo service nimble restart
- (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:
- Check Nimble Streamer logs for any errors related to the DRM configuration.
- 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:
- Ensure the
drm.conf
file is correctly formatted. - Verify the API URL and credentials from the Cloud DRM console.
- Check Nimble Streamer logs for detailed error messages.