HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
videojs
v10
Creative & Media2026–2026
videojs / v10 · Archived

v10

🚚 Video.js v10 has moved to videojs/video.js

4Distinct people
9Mentions
0Explicit recommenders
1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🚚 Video.js v10 has moved to videojs/video.js

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour9 dated mentions

Observed mentions: 2026-03-25 01:38:12 UTC to 2026-03-25 22:12:27 UTC.

0122026-03-25 01:00:00 UTC to 2026-03-25 02:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsMar 25, 01:002026-03-25 02:00:00 UTC to 2026-03-25 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 03:00:00 UTC to 2026-03-25 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 04:00:00 UTC to 2026-03-25 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 05:00:00 UTC to 2026-03-25 06:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-03-25 06:00:00 UTC to 2026-03-25 07:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-03-25 07:00:00 UTC to 2026-03-25 08:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 08:00:00 UTC to 2026-03-25 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 09:00:00 UTC to 2026-03-25 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 10:00:00 UTC to 2026-03-25 11:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 11:00:00 UTC to 2026-03-25 12:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 25, 11:002026-03-25 12:00:00 UTC to 2026-03-25 13:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 13:00:00 UTC to 2026-03-25 14:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-03-25 14:00:00 UTC to 2026-03-25 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 15:00:00 UTC to 2026-03-25 16:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 16:00:00 UTC to 2026-03-25 17:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 17:00:00 UTC to 2026-03-25 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 18:00:00 UTC to 2026-03-25 19:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 19:00:00 UTC to 2026-03-25 20:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 20:00:00 UTC to 2026-03-25 21:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-03-25 21:00:00 UTC to 2026-03-25 22:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 22:00:00 UTC to 2026-03-25 23:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 25, 22:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Mar 25, 01:002026-03-25 01:00:00 UTC2026-03-25 02:00:00 UTC202
Mar 25, 02:002026-03-25 02:00:00 UTC2026-03-25 03:00:00 UTC000
Mar 25, 03:002026-03-25 03:00:00 UTC2026-03-25 04:00:00 UTC000
Mar 25, 04:002026-03-25 04:00:00 UTC2026-03-25 05:00:00 UTC000
Mar 25, 05:002026-03-25 05:00:00 UTC2026-03-25 06:00:00 UTC101
Mar 25, 06:002026-03-25 06:00:00 UTC2026-03-25 07:00:00 UTC101
Mar 25, 07:002026-03-25 07:00:00 UTC2026-03-25 08:00:00 UTC000
Mar 25, 08:002026-03-25 08:00:00 UTC2026-03-25 09:00:00 UTC000
Mar 25, 09:002026-03-25 09:00:00 UTC2026-03-25 10:00:00 UTC000
Mar 25, 10:002026-03-25 10:00:00 UTC2026-03-25 11:00:00 UTC000
Mar 25, 11:002026-03-25 11:00:00 UTC2026-03-25 12:00:00 UTC101
Mar 25, 12:002026-03-25 12:00:00 UTC2026-03-25 13:00:00 UTC000
Mar 25, 13:002026-03-25 13:00:00 UTC2026-03-25 14:00:00 UTC202
Mar 25, 14:002026-03-25 14:00:00 UTC2026-03-25 15:00:00 UTC000
Mar 25, 15:002026-03-25 15:00:00 UTC2026-03-25 16:00:00 UTC000
Mar 25, 16:002026-03-25 16:00:00 UTC2026-03-25 17:00:00 UTC000
Mar 25, 17:002026-03-25 17:00:00 UTC2026-03-25 18:00:00 UTC000
Mar 25, 18:002026-03-25 18:00:00 UTC2026-03-25 19:00:00 UTC000
Mar 25, 19:002026-03-25 19:00:00 UTC2026-03-25 20:00:00 UTC000
Mar 25, 20:002026-03-25 20:00:00 UTC2026-03-25 21:00:00 UTC101
Mar 25, 21:002026-03-25 21:00:00 UTC2026-03-25 22:00:00 UTC000
Mar 25, 22:002026-03-25 22:00:00 UTC2026-03-25 23:00:00 UTC101

What Hacker News says

9 sources
Core contributor here! FYI these kinds of cases are definitely on my mind. One of the nice things about our overarching architecture is we (or someone else, even you!) can add/extend for these kinds in a way that doesn't deeply "bake them in" to core use cases but still makes it completely possible to add. From "soup to nuts" (to extend my food metaphors), we've built VJS in a "highly composable" manner, which means we can, say, add state features, add UI for those state features, extend media renderers to expose those features to the state (if/when needed), etc. etc. If you want to start a discussion picking a concrete Chrome-only API, I'd encourage it (https://github.com/videojs/v10/discussions). I don't know if/when we'll prioritize these things as part of the "core library", given our higher priorities of "feature parity" and core fun
Read the rest
ctionality, but we're already well situated for these kinds of cases (I'm sure we'll encounter and need to figure out some wrinkles along the way, but I'm confident these will generally be tractable).
In Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller
Core VJS contributor here and builder of players and playback engines for too long (aka before HLS and MPEG-DASH were a thing). As others mentioned, the support matrix for HLS is very typically the proximate, pragmatic reason why folks will reach for HLS over DASH in a "pick one" situation. You're right that HLS is particularly bad for 24/7, long lived DVR/"EVENT" (to use HLS jargon) streams (fine for live, and there are some "cheats" you can do for EVENT to help there) compared to MPEG-DASH's <SegmentTemplate>-based "dynamic" MPEG usage. Outside of that, though, the standards themselves have different pain points and tradeoffs. Some things are "cleaner"/"less presumptuous" in DASH, but DASH also has a lot of design details that were both "design by committee" (aka different competing interests resulting in a spec that has arguably too ma
Read the rest
ny ways to do the same thing) and overrepresented by server-side folks (so many playback complexities/concerns/considerations weren't thought through). It is also sometimes not constrained enough, at least by default (things like not guaranteeing time alignment across media representations). For what it's worth, I think there are lots of pain points from the HLS design decisions as well, but focusing on DASH here just given the framing of your question. On the flip side, if you stay within certain bounds, the difference between HLS and DASH simply become text files: one XML manifest (MPD) for DASH and a few playlists (M3U8s) for HLS. There's a lot of effort being made to this end, including: https://cdn.cta.tech/cta/media/media/resources/standards/cta... and the CMAF-HAM-inspired model (https://github.com/streaming-video-technology-alliance/commo... from CML and https://github.com/videojs/v10/blob/main/packages/spf/src/co... in our own playback engine library), just to name a few.
In Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller
Hey there, core contributor here! This came up during our beta effort. We very likely will be having an opt-in, non-native subtitles rendering implementation. I know at least a few team members that really want it, which adds to the likelihood that we'll add it eventually. The short version of why we started with native subtitles - bundle size and legal compliance, with a dash of prioritization and a sprinkle of hope that some looming laws will motivate browser owners to prioritize improvements. If you want to see our design decision artifact on the topic, we try to make a lot of them public (also to help the robots these days) - https://github.com/videojs/v10/blob/main/internal/decisions/...
In Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller
Hey there, I'm on the Video.js team! Sounds like your context provider approach is already in the right ballpark! Some background: our store[1] which was inspired by Zustand[2] is created and passed down via context too. This is the central state management piece of our library and where we imagine most devs will build on for extending and customizing to their needs. Updates are handled via simple store actions like `store.play()`, `store.setVolume(10)`, etc. Those actions are generally called in response to DOM events. On the events side of things, rather than registering event listeners directly, in v10 you'd subscribe to the store instead. Something like `store.subscribe(callback)`, or in React you'd use our `usePlayer`[3] hook. The store is the single source of truth, so rather than listening to the underlying media element directly,
Read the rest
you're observing state changes. --- So far with v10 we haven't been thinking about "plugins" in the traditional sense either. If I had to guess at what it would look like, it'd be three things: 1. Custom store slices[4] so plugins can extend the store with their own state and actions 2. A middleware layer that plugs into the store's action pipeline so a plugin could intercept or react to actions before or after they're applied, similiar to Zustand middleware, or even in some ways like Video.js v8 middleware[5] 3. UI components that plugins can ship which use our core primitives for accessing the store, subscribing to state, etc. I believe that'd cover the vast majority of what plugins needed in v8. We haven't nailed down the exact API yet but that's the direction we're leaning towards. We're still actively working on both the library and our docs so I don't have somewhere I can link to for these just yet (sadly)! We're likely targeting sooner, but GA (end of June) is the deadline. I should also add... one thing we prototyped early on that may return: tracking end-to-end requests through the store. A DOM event triggers a store action like play, which calls `video.play()`, which then waits for the media event response (play, error, etc.). It worked really well and lines up nicely with the middleware direction. [1]: https://github.com/videojs/v10/tree/main/packages/store [2]: https://github.com/pmndrs/zustand [3]: https://videojs.org/docs/framework/react/reference/use-playe... [4]: https://zustand.docs.pmnd.rs/learn/guides/slices-pattern#sli... [5]: https://legacy.videojs.org/guides/middleware/
In Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller
Hey VJS core contributor here. We definitely feel that concern and we also don't yet have a silver bullet formalized. I suspect we'll need some kind of alternate implementations or feature augmentation at some point. We're currently doing things in a bit more ad hoc way, such as the interrelationship between PiP and Fullscreen (see, e.g.: https://github.com/videojs/v10/blob/main/packages/core/src/d...).
In Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.