The warning arises because the Video.js player is detecting a plugin configuration that is no longer recommended, aiming to move developers toward the more stable, actively maintained VHS library. How to Fix the "hls is deprecated" Warning

VHS supports both HLS and DASH out of the box. By deprecating the old HLS‑only tech, Video.js encourages developers to switch to a single, well‑tested streaming solution that works identically for both protocols.

While this is a warning, not a breaking error, it signals a necessary evolution in how Video.js handles HTTP Live Streaming (HLS) content. Ignoring it may lead to compatibility issues in future versions.

If you append security tokens or custom headers to your video segments, update your request hooks.

To ensure the video player remains stable and compatible with future updates, our development team needs to update the code references from player.tech_.hls to player.tech_.vhs . This is a routine maintenance task that ensures long-term reliability and performance.

Common plugins that triggered this warning in older versions include: videojs-contrib-quality-levels videojs-hls-quality-selector

Migrating from player.tech--.hls to player.tech--.vhs aligns projects with the actively maintained VHS stack, reduces technical debt, and improves feature support. The migration is primarily a dependency and configuration change, usually requiring minimal code updates beyond mapping legacy options and event handlers. Proper testing and staged rollout mitigate risk.

<script src="https://vjs.zencdn.net/7.20.3/video.js"></script> <script> var player = videojs('my-video'); player.src( src: 'https://example.com/stream.m3u8', type: 'application/x-mpegURL' ); </script>

Example that triggers the warning:

// Access the VHS object via the tech const vhs = player.tech_.vhs; // Notice: .vhs, not .hls

Over time, videojs-contrib-hls became the de facto standard for HLS playback in Video.js, but it had limitations: it was maintained as a separate project, had its own configuration quirks, and sometimes lagged behind the core Video.js releases.

);