---
title: "HTML5 Player Integration Sample 2.4.0"
description: "Added a dedicated navigation page for every sample category, so DRM integration examples are easier to browse and find by player type."
---
> For the complete documentation index, see [llms.txt](/llms.txt).

**New features**

- Added a dedicated navigation page for every sample category, so DRM integration examples are easier to browse and find by player type.

- Added PlayReady support to the CSL (Custom Security Level) sample for Shaka Player, extending DRM coverage beyond the existing Widevine-based CSL flow.


**Improvements**

- Reorganized the whole folder structure into three directories, `basic`, `advanced`, and `shared`, to make the sample levels easier to tell apart and to navigate.

- Consolidated the helper files that used to be scattered across the project into `shared/js/` using a base + extension pattern, so samples reuse code cleanly instead of duplicating it.

- Applied Shaka Player's current license renewal API, which keeps the renewal flow aligned with Shaka's internals and removes deprecated call paths.

- Changed the hardware DRM sample on Windows Chrome to use **PlayReady SL3000** instead of Widevine L1, which reflects how hardware DRM is actually used on that platform.

- Updated all Shaka-based samples for **Shaka Player v5.0.2** compatibility.


**Bug fixes**

- Fixed the Widevine robustness setting being passed as a string in the Shaka v5 samples. It is now passed as an **array**, as the updated Shaka v5 API requires.