<img src="https://img.shields.io/badge/%20-ENTERPRISE-B10031" style="float:left"/><br /><img src="https://img.shields.io/badge/iOS-V4-009727?logo=apple" style="float:left"/><br />
JWP provides a simplified approach to protecting your content with industry-standard Digital Rights Management (DRM). By enabling DRM on a property from your JWP dashboard, the complex aspects of DRM management are managed by JWP on your behalf:
Several configured DRM Policies
DRM media content key generation and management for FairPlay Streaming
License delivery services for content playback on any Apple device
<br />
With JWP managing the technical aspects of DRM, you can focus on the design and implementation of engaging content experiences. For more information about the DRM workflow, please refer to the [High-Level Workflow Overview](🔗).
For the following use cases, use [Studio DRM Standalone](🔗) with your current streaming and hosting solution:
Choosing not to enable Studio DRM with JW Platform
Implementing live stream integrations
<br /> <hr />
## Compatibility
JWP supports industry-standard DRM. The following table shows the DRM technology that is supported with the iOS SDK and which browsers and operating systems support this technology.
<br /> <hr />
## Requirements
<br />
## Implementation
Use the following steps to set up DRM playback in your iOS app:
Create a `
DeliveryAPI
` struct to easily parse the required JSON data.
<br /> <br />
<a href="/platform/docs/protection-studio-drm-generate-a-signed-content-url-for-drm-playback" target="_blank">Generate a signed URL for DRM playback.</a>
We **strongly recommend** using a proxy service to generate the JSON web token (JWT). If you generate the JWT within a client-side native app, you risk exposing your API secret.
<br /> <br />
Make a `
GET
` call with the signed URL.<br /><br />From the signed content URL response, the example source will extract the content URL (`playlist[].sources[].file
`), the certificate URL (`playlist[].sources[].drm.fairplay.certificateUrl
`) and the SPC Process URL (`playlist[].sources[].drm.fairplay.spcProcessUrl
`) from the `sources
` array, and populate the specific Stream configuration with them.
The ordering of items within `
playlist[].sources[]
` is not static. Therefore, do not use a defined index (`playlist[].sources[0]
`) as part of your extraction process. The above example source demonstrates how to locate the correct playlist\[].sources index.Also, both the media URL and its associated LAURLs are valid for only **10 minutes from when they are requested**.
<br /> <br />
Use the extracted content URL to set up the player.
<br /> <br />
Use the extracted certificate URL to retrieve the application certificate.
<br /> <br />
Use the extracted license URL to retrieve the FairPlay license.
<br />
<!-- Removes the automatic page-to-page navigation at the bottom of the page -->
<style> .rm-Pagination { display: none; } </style>