Video.js v10 is a ground-up rewrite built around three ideas: composable features, multi-platform support (React and HTML custom elements), and a TypeScript-first API that tree-shakes down to only what you use.
Quickstart
Get a working player in under 5 minutes with React or HTML custom elements.
Core Concepts
Understand features, presets, skins, and the three-part architecture.
React Guide
Build a fully custom player with React hooks and components.
HTML Guide
Use framework-free custom elements in any web project.
What’s new in v10
Video.js v10 is a complete rewrite that addresses the architectural constraints of v7/v8. The key changes:Composable features
Features are self-contained units of state and actions. Only include what your player needs — playback, volume, time, fullscreen, PiP, text tracks, and more.
React-native support
First-class React components with hooks, context, and TypeScript generics. Minimal re-renders via selector-based subscriptions.
HTML custom elements
Framework-free web components that work in any environment. Use the CDN or npm, with automatic state reflection via data attributes.
TypeScript-first
Full type safety across the entire API surface. Generic player types inferred from your feature set.
Tree-shakeable
Import only the features and components you use. No global registrations, no side effects unless you want them.
HLS & DASH built-in
First-class HLS (via hls.js) and DASH (via dash.js) support without additional plugins.
Install
Quick example
- React
- HTML
Packages
@videojs/react
React components, hooks, and context for building players in React.
@videojs/html
HTML custom elements for framework-free player development.
@videojs/core
Runtime-agnostic core logic, features, and DOM bindings.
@videojs/store
Reactive state management with selector-based subscriptions.
@videojs/spf
Stream Processing Framework for HLS and DASH.
@videojs/utils
Shared utilities for DOM, events, and type predicates.
Community
Discord
Join the Video.js community for help and discussion.
GitHub
Report issues, request features, or contribute to the project.