3 KB gzip core. Modular streaming, ads, DRM, and UI — add only what you need. Built on web standards.
No bloat, no implicit behavior. Just a clean, composable player that delegates to the browser whenever possible.
Sensible defaults, thorough docs, and TypeScript types from the first import.
npm, pnpm, or a script tag.
pnpm add @videts/videOne function. Pass a video element.
createPlayer(videoEl)Add plugins for what you need.
player.use(hls())// pnpm add @videts/vide import { createPlayer } from "@videts/vide"; import { hls } from "@videts/vide/hls"; import { ui } from "@videts/vide/ui"; import "@videts/vide/ui/theme.css"; const video = document.querySelector("video"); const player = createPlayer(video); player.use(hls()); player.use(ui({ container: video.parentElement })); player.src = "https://example.com/live.m3u8"; // Listen for events player.on("play", () => { console.log("playing"); });
Every plugin is a separate entry point. Tree-shaking works out of the box.
Open source, MIT licensed. Built for teams who care about performance.