finds.dev← search

// the find

vime-js/vime

★ 2,841 · TypeScript · MIT · updated Nov 2024

Customizable, extensible, accessible and framework agnostic media player. Modern alternative to Video.js and Plyr. Supports HTML5, HLS, Dash, YouTube, Vimeo, Dailymotion...

Vime is a web-components-based media player built with Stencil, offering a unified API across HTML5, HLS, DASH, YouTube, Vimeo, and Dailymotion. It ships framework bindings for React, Vue, Svelte, Angular, and Stencil. The README opens with a deprecation warning — the project is being abandoned.

The component composition model is genuinely well-designed: you assemble controls declaratively in markup rather than passing a config blob, which makes custom UIs far less painful than Video.js. CSS custom properties are used throughout for theming, so you don't need to fight specificity wars to restyle it. The unified provider abstraction means you write the same event/property API whether the source is an mp4 or a YouTube embed. At ~25kB gzip standalone it's lighter than most alternatives.

It's deprecated — the maintainer has explicitly said so in the README and linked to an open issue about it. Adopting this today means inheriting a dead codebase. The Stencil dependency is an unusual bet that didn't pay off long-term; if Stencil's own trajectory wobbles, so does Vime. The YouTube and Vimeo providers work via iframe postMessage, which means you're at the mercy of third-party API changes with no upstream maintainer to fix breakage. Only 154 forks on a 2800-star repo suggests the community never grew large enough to sustain it without the original author.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →