const vhs = player.tech().vhs; vhs.currentLevel = 2; The VHS API is nearly identical. Methods like .nextLevel() , .loadLevels() , .selectPlaylist() , and properties like .levels still work—just under .vhs .
But old code dies hard. Many developers still wrote:
And yes — the irony of a modern streaming protocol using an engine named after a tape format is not lost on any of us. const vhs = player
Fix it now, and when Video.js 9 or 10 drops and the alias finally dies, your player won’t mysteriously break while everyone else’s keeps working.
After fixing, open the console. No warning. Just clean, professional HLS streaming through the glorious VHS engine. Many developers still wrote: And yes — the
videojs.log.level('error'); // Hides all warnings, including this one Better: Update your code and use .vhs . The .hls warning is a gift. It’s Video.js telling you: “We’re cleaning house. Come along or get left behind.”
You’re building a sleek video player. It works perfectly. But you open the browser’s developer console, and there it is—a yellow-eyed warning staring back at you: VIDEOJS WARN: player.tech--.hls is deprecated. use player.tech--.vhs instead It’s not an error. Your video still plays. But ignoring it is like leaving a “Check Engine” light on because the car still drives. Eventually, it will break. No warning
const hls = player.tech().hls; hls.currentLevel = 2; To this:
videojs.log.history.forEach(msg => { if (msg && msg.indexOf && msg.indexOf('player.tech--.hls is deprecated') !== -1) { // remove it from the log queue } }); // Or more simply, filter warnings globally: videojs.options.nativeAudioTracks = false; videojs.options.nativeVideoTracks = false; // (But that's not the intended fix) The official way to silence it (not recommended long-term):