# \[DRM\] \[PlayReady\] HLS manifest creation fails when using PSSH

**URL:** <https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166>\
**Category:** Support\
**Tags:** drm\
**Created:** [July 31, 2024, 9:09am UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166 "2024-07-31T09:09:53Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lukasz.Bajorski](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@Lukasz.Bajorski](https://community.bitmovin.com/u/Lukasz.Bajorski)\
**Post date:** [July 31, 2024, 9:09am UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166/1 "2024-07-31T09:09:53Z")

</div>

### Product

Encoding - VOD

### Question

Hey folks,

When supplying pssh parameter to CencPlayReady, the subsequent HLS manifest creation fails. Cannot see error details though. Here’s an exemplary encoding: 6b948dff-ef52-4f7e-9675-0abd64b08c2f

When I supply the LaUrl it works, however I have issues playing the content (both DASH and HLS) so I suspect it might have something to do with the pssh.

Cheers,  
Łukasz

---

<div class="post-metadata">

**Author:** ![Neil](https://sea1.discourse-cdn.com/flex015/user_avatar/community.bitmovin.com/neil/32/118_2.png) [@Neil](https://community.bitmovin.com/u/Neil)\
**Post date:** [August 5, 2024, 12:00pm UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166/2 "2024-08-05T12:00:10Z")

</div>

Hi Łukasz,

Thanks for posting.  
From our internal error logs, I see that the encoding you provided failed with the following:

```auto
LaUrl of PlayReady CENC DRM must not be empty

```

So it appears that the re-encoding containing the LaUrl was successful.  
We have the following documentation - [How to create PlayReady DRM protected content](https://developer.bitmovin.com/encoding/docs/how-to-create-playready-drm-protected-content#encoding-with-drm-configuration)  
as well as this example - [bitmovin-api-sdk-examples/java/src/main/java/CencDrmContentProtection.java at main · bitmovin/bitmovin-api-sdk-examples · GitHub](https://github.com/bitmovin/bitmovin-api-sdk-examples/blob/main/java/src/main/java/CencDrmContentProtection.java)

Please review this documentation to check if your configuration is correct.

---

<div class="post-metadata">

**Author:** ![Lukasz.Bajorski](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@Lukasz.Bajorski](https://community.bitmovin.com/u/Lukasz.Bajorski)\
**Post date:** [August 6, 2024, 12:50pm UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166/3 "2024-08-06T12:50:30Z")

</div>

Hi Neil,

Thanks for looking into this.

If I read the documentation of the API correctly, it states that both LaUrl and PSSH are optional and one can use either of them:

"  
PlayReady DRM specific configuration options: You can either provide an `pssh` string or an `laUrl` in this configuration.

- `pssh`: (optional) Base64 encoded String, PSSH payload Example: `QWRvYmVhc2Rmc2FkZmFzZg==`
- `laUrl`: (optional) The License Aquistion URL that shall be used by the player.  
"

Indeed, providing the LaUrl parameter doesn’t create the error, but on the other hand I should be able to provide the PSSH parameter too, as an alternative to LaUrl.

And since there are issues playing the content with PlayReady, I suspected missing of the PSSH could be the cause.

Cheers,  
Łukasz

---

<div class="post-metadata">

**Author:** ![Neil](https://sea1.discourse-cdn.com/flex015/user_avatar/community.bitmovin.com/neil/32/118_2.png) [@Neil](https://community.bitmovin.com/u/Neil)\
**Post date:** [August 12, 2024, 3:54pm UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166/4 "2024-08-12T15:54:48Z")

</div>

Hi Łukasz,

Thanks for the update. I’ve been informed that the laURL is optional for Dash and Smooth but is required for HLS. Are you able to generate a Dash manifest only by supplying the pssh?

If you provide both parameters for HLS, do you run into any playback errors?

---

<div class="post-metadata">

**Author:** ![Lukasz.Bajorski](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@Lukasz.Bajorski](https://community.bitmovin.com/u/Lukasz.Bajorski)\
**Post date:** [August 13, 2024, 9:54am UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166/5 "2024-08-13T09:54:23Z")

</div>

Hey Neil,

- Dash

- HLS

and as mentioned before, providing only LaUrl for both DASH and HLS results in successful encoding but error during playout.

---

<div class="post-metadata">

**Author:** ![Lukasz.Bajorski](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@Lukasz.Bajorski](https://community.bitmovin.com/u/Lukasz.Bajorski)\
**Post date:** [August 13, 2024, 9:56am UTC](https://community.bitmovin.com/t/drm-playready-hls-manifest-creation-fails-when-using-pssh/3166/6 "2024-08-13T09:56:36Z")

</div>

Just to add: the error with PlayReady might not be related to PSSH, it was just a guess. Here is the problem as seen by Axinom:

> [@DRM CENC on manifest and PSSH level, but CBCS on segments level -\> PlayReady crashes](https://community.bitmovin.com/t/drm-cenc-on-manifest-and-pssh-level-but-cbcs-on-segments-level-playready-crashes/3129/2):
>
> Hi @Lukasz.Bajorski can you please share an encoding ID ? We will take a look. Thanks in advance
