
Vue Player — a modern Vue 3 video player with HLS, chapters, subtitles and Nuxt support
Hi everyone! After not finding a Vue 3 video player that covered everything I needed, I built one.
Vue Player handles the things you'd otherwise wire up yourself:
Streaming — pass an .m3u8 URL and HLS kicks in automatically with quality switching. hls.js is optional and loaded on demand, so if you're not using HLS there's zero overhead.
Timeline — chapter markers with hover tooltips, thumbnail previews on scrub. The kind of stuff you see on YouTube but rarely in a library.
Subtitles — WebVTT tracks with a built-in multi-language menu, no extra setup.
Flexibility — a usePlayer composable for fully custom UIs, a controls slot if you just want to swap the controls, and CSS variables for theming down to every detail. Also ships an official Nuxt module with auto-imports.
Everything is fully typed.
npm install @vue-player/vue
# optional, for HLS streaming
npm install hls.js
<template>
<VideoPlayer src="/video.mp4" />
</template>