Videojs Warn Player.tech--.hls Is Deprecated. Use Player.tech--.vhs Instead -
For HLS streaming, browsers do not natively support .m3u8 playlists. To solve this, Video.js uses a that intercepts the stream, transmuxes it into something the HTML5 video element can understand (usually MP4 fragments), and feeds the data to the native player.
const currentLevel = player.tech_.vhs.currentLevel; console.log(`Current bitrate level: ${currentLevel}`); Before: For HLS streaming, browsers do not natively support
const levels = player.tech_.vhs.levels; levels.forEach((level, idx) => { console.log(`Level ${idx}: ${level.height}p`); }); Accessing VHS when tech may not be ready Do not access player.tech_.vhs immediately after player initialization. The tech may still be loading. Use the loadeddata or techready event: The tech may still be loading
const vhs = player.tech_.vhs; Because the underlying object is the same, most methods will work identically. However, double-check any methods specific to the old contrib-hls . The VHS API is largely compatible but not 100% identical. Step 4: Update documentation and comments If your team maintains internal docs, update any references from “HLS tech” to “VHS tech” to avoid future confusion. 6. Code Examples: Before and After Example 1: Getting current quality level Before (deprecated): The VHS API is largely compatible but not 100% identical
const hls = player.tech_.hls; to:
The migration is straightforward: rename the property, test your quality-switching and event-handling logic, and update any internal documentation. Your reward is a cleaner, more maintainable codebase free of deprecation warnings.