npm / video.js
video.js
What changed in video.js 6 to 10, from its official release notes, upgrade guides and advisories. Also covers @types/video.js. Sources checked 2026-10-27.
11 breaking10 new APIs and options11 behavior and defaults1 tooling12 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initvideo.js 102 changes
Behavior and default changes 1
Installs are routed to the framework packages.
Tooling 1
video.js is published to npm under the next tag, giving developers access to releases through that distribution channel.
video.js 88 changes
New APIs and options 1
Players can now be marked as main content.
Fixes and other changes 7
Adds the missing Japanese translation for “Playing in Picture-in-Picture.”
Updates Norwegian Nynorsk translations.
On Edge, focus the play toggle instead of the tech element to avoid a black frame during hardware-accelerated protected playback.
Fixes the missing audio description icon in Safari.
Removes a stale layout class when breakpoints() is reset.
Fixes a type-generation error that reports Cannot find name Player.
Properly removes event listeners on disposal to prevent leaks and runtime errors.
video.js 635 changes
Breaking changes 11
Adding children with options passed as a boolean is no longer allowed.
Default text tracks are no longer shown over video.
The unused defaultVolume option default was removed.
Deprecated features of extend and Component#extend were removed.
The Flash tech was removed.
Special loadstart handling was removed.
Middleware was marked as a breaking change and removed.
Middleware now requires a factory, and middleware names gain a -mw suffix.
play() now returns the native Promise.
registerComponent now only works with Components.
Method chaining was removed from videojs.
New APIs and options 9
Advanced class-based plugins were added for 6.0.
Log levels were added, allowing developers to control logging verbosity.
MenuButton gained a controlText function.
Pausing on open can now be made optional through ModalDialog options.
The player gained played(), defaultMuted(), and defaultPlaybackRate() methods.
The Tech#resize event is exposed as Player#resize.
Replay at ended was added.
Stateful components were added.
Time tooltips were added.
Behavior and default changes 10
Buttons now always use a button element.
localize accepts tokens, and progress bar time is localized.
Re-registering a plugin no longer throws unless the plugin is a player method.
Space toggles playback when focus is on the seekbar.
registerTech now adds the registered tech to the default techOrder.
Time tooltips are not added to players on mobile devices.
Track and TrackList APIs were unified.
Unmuting returns to the previously selected volume.
videojs.getTech accepts TitleCase or camelCase names.
The volume control was changed for accessibility.
Fixes and other changes 5
Early play waits for the player to be ready, even when a source is available.
Native text tracks can now be forced on or off.
All outlines are restored to improve accessibility.
Player#src now supports an empty src.
Player#techCall_ is synchronous again.