# What changed in video.js

> 45 changes in video.js 6 to 10 from its official release notes, upgrade guides and advisories: 11 breaking, 10 new APIs and options. Each one cited. Sources checked 2026-10-27. HTML: https://unstale.sh/npm/video.js/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## video.js 10

### Behavior and default changes

- Installs are routed to the framework packages. (10.1.0) — [release notes](https://github.com/videojs/video.js/releases/tag/video.js%4010.1.0)

### Tooling

- video.js is published to npm under the next tag, giving developers access to releases through that distribution channel. (10.1.0) — [release notes](https://github.com/videojs/video.js/releases/tag/video.js%4010.1.0)

## video.js 8

### New APIs and options

- Players can now be marked as main content. (8.24.0) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.24.0)

### Fixes and other changes

- Adds the missing Japanese translation for “Playing in Picture-in-Picture.” (8.24.0) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.24.0)
- Updates Norwegian Nynorsk translations. (8.24.0) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.24.0)
- On Edge, focus the play toggle instead of the tech element to avoid a black frame during hardware-accelerated protected playback. (8.24.0) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.24.0)
- Fixes the missing audio description icon in Safari. (8.23.9) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.23.9)
- Removes a stale layout class when breakpoints() is reset. (8.23.9) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.23.9)
- Fixes a type-generation error that reports Cannot find name Player. (8.23.9) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.23.9)
- Properly removes event listeners on disposal to prevent leaks and runtime errors. (8.23.9) — [release notes](https://github.com/videojs/video.js/releases/tag/v8.23.9)

## video.js 6

### Breaking changes

- Adding children with options passed as a boolean is no longer allowed. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Default text tracks are no longer shown over video. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- The unused defaultVolume option default was removed. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Deprecated features of extend and Component#extend were removed. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- The Flash tech was removed. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Special loadstart handling was removed. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Middleware was marked as a breaking change and removed. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Middleware now requires a factory, and middleware names gain a -mw suffix. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- play() now returns the native Promise. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- registerComponent now only works with Components. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Method chaining was removed from videojs. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)

### New APIs and options

- Advanced class-based plugins were added for 6.0. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Log levels were added, allowing developers to control logging verbosity. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- MenuButton gained a controlText function. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Pausing on open can now be made optional through ModalDialog options. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- The player gained played(), defaultMuted(), and defaultPlaybackRate() methods. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- The Tech#resize event is exposed as Player#resize. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Replay at ended was added. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Stateful components were added. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Time tooltips were added. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)

### Behavior and default changes

- Buttons now always use a button element. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- localize accepts tokens, and progress bar time is localized. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Re-registering a plugin no longer throws unless the plugin is a player method. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Space toggles playback when focus is on the seekbar. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- registerTech now adds the registered tech to the default techOrder. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Time tooltips are not added to players on mobile devices. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Track and TrackList APIs were unified. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Unmuting returns to the previously selected volume. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- videojs.getTech accepts TitleCase or camelCase names. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- The volume control was changed for accessibility. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)

### Fixes and other changes

- Early play waits for the player to be ready, even when a source is available. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Native text tracks can now be forced on or off. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- All outlines are restored to improve accessibility. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Player#src now supports an empty src. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
- Player#techCall_ is synchronous again. (6.0.0) — [release notes](https://github.com/videojs/video.js/blob/HEAD/CHANGELOG.md)
