OSS TanbouSign in with GitHub

add a shared player UI and API to HTML5 video, including web streaming formats such as HLS and DASH

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
39,907
Primary language
JavaScript
License
Apache-2.0
Repository last updated
Oct 2, 2026
On this page

Overview

Video.js is an open-source web video player built on the HTML5 <video> element. It provides a consistent player UI and API across desktops, mobile devices, tablets, and web-based smart TVs, with support for common web media formats including HLS and DASH streaming.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Initialize video elements automatically or explicitly as Video.js players

A <video class="video-js"> element with data-setup='{}' can be initialized automatically on page load. Component-managed applications can instead call videojs('my-player', options) explicitly.

Sources: [1]

Handle HLS and DASH through a common player API

The README lists common web media formats plus HLS and DASH streaming support out of the box, letting applications use Video.js controls and events around those playback formats.

Sources: [1]

Extend player behavior with options, events, and plugins

Initialization accepts an options object and ready callback, and applications can subscribe to events such as ended. The project also maintains a plugin ecosystem for additional player capabilities.

Sources: [1]

Best fit

Fits web applications that need consistent video UI and controls across browsers and devices

It is useful for video services, education content, and other media interfaces that want to retain the native video foundation while standardizing controls and streaming behavior.

Sources: [1]

Before adoption

data-setup options must be valid JSON

The README requires data-setup to contain at least {} and any included options to form valid JSON. Applications that manage component lifecycles can use manual initialization instead.

Sources: [1]

8.24.1 is a tagged v8 package and major-version upgrades need separate review

The tagged package.json reports Video.js 8.24.1. The README also points to substantial changes planned for a future major version, so upgrades across the major boundary should follow upstream migration guidance.

Sources: [1][2]

Official sources

  1. [1]Video.js v8.24.1 README(2026-10-05)
  2. [2]Video.js v8.24.1 package metadata(2026-10-05)
  3. [3]Video.js Apache-2.0 license(2026-10-05)
  4. [4]Video.js plugins(2026-10-05)
Supplemental curator note

The main value is layering a consistent player UI, API, and streaming support on top of the native <video> element. Because Video.js supports both data-setup auto-initialization and explicit videojs() initialization, component-based applications should choose the lifecycle model deliberately.

Try it in 3 steps

  1. 1

    Install Video.js 8.24.1 in an isolated directory

    Pin the reviewed v8 package and test it without modifying an existing application.

    demo=$(mktemp -d "${TMPDIR:-/tmp}/videojs.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact video.js@8.24.1
  2. 2

    Create minimal HTML that loads Video.js

    Follow the README Quick Start with the video-js class and data-setup, loading CSS and JavaScript from the installed package.

    printf "%s\n" '<!doctype html>' '<meta charset="utf-8">' '<link rel="stylesheet" href="./node_modules/video.js/dist/video-js.css">' '<video id="my-player" class="video-js" controls preload="auto" width="640" height="264" data-setup="{}">' '<source src="https://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">' '</video>' '<script src="./node_modules/video.js/dist/video.min.js"></script>' > index.html
  3. 3

    Open the HTML in a browser and verify the player

    Open index.html in a browser and confirm Video.js controls are rendered. Loading the sample video requires network access.

    index.html
Check the official README

Growth

Growth trends · Last 30 days

39,907 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
4
Open PRs
57

Development activity is still being collected.

Built with

Categories and tags

Categories

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • video
  • player
  • hls
  • javascript
  • videojs
  • html
  • html5-video
  • html5-audio
  • html5
  • dash
  • video-player
Stars
39,907
Forks
7,479
Watchers
1,248
Open issues
617
Contributors
369
Owner type
Organization
Primary language
JavaScript
License
Apache-2.0
Repository last updated
Oct 2, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?