A lightweight, plugin-based video player for the modern web. Only bundle what you need.
Modular design. HLS, UI, casting - all separate plugins. Bundle only what you use.
Adaptive streaming with hls.js. Native support for MP4, WebM, MOV, MKV.
Built-in AirPlay and Chromecast plugins with seamless HLS switching.
Fully typed API with excellent IDE support and developer experience.
Compact audio player with artwork, progress, and multiple layout modes.
Queue management with shuffle, repeat modes, and auto-advance.
Lock screen controls and media keys on mobile and desktop.
Vue 3 wrapper included, with React coming soon.
import { ScarlettPlayer } from '@scarlett-player/core';
import { createHLSPlugin } from '@scarlett-player/hls';
import { createNativePlugin } from '@scarlett-player/native';
import { uiPlugin } from '@scarlett-player/ui';
const player = new ScarlettPlayer({
container: document.getElementById('player'),
plugins: [
createHLSPlugin(), // HLS streams (.m3u8)
createNativePlugin(), // Native formats (MP4, WebM)
uiPlugin({
theme: { accentColor: '#e50914' },
}),
],
});
await player.load('https://example.com/video.m3u8');
| Package | Description |
|---|---|
| @scarlett-player/core | Core player engine with state management and event system |
| @scarlett-player/embed | CDN-ready bundles for video and audio players |
| @scarlett-player/hls | HLS playback provider (hls.js + native Safari fallback) |
| @scarlett-player/native | Native video provider (MP4, WebM, MOV, MKV) |
| @scarlett-player/ui | Video UI controls with keyboard shortcuts and theming |
| @scarlett-player/audio-ui | Compact audio player UI (podcasts, music) |
| @scarlett-player/analytics | QoE metrics and engagement tracking |
| @scarlett-player/playlist | Queue management, shuffle, repeat modes |
| @scarlett-player/media-session | Lock screen and media key controls |
| @scarlett-player/airplay | AirPlay casting support |
| @scarlett-player/chromecast | Chromecast casting support |
| @scarlett-player/captions | WebVTT subtitles and closed captions, extracted from HLS manifests |
| @scarlett-player/share | Native share sheet, copy link, timestamps and embed codes |
| @scarlett-player/watermark | Anti-piracy text or image overlay with dynamic repositioning |
| @scarlett-player/vue | Vue 3 component wrapper |
| @scarlett-player/embed | CDN embed - data attributes, UMD and ESM bundles, iframe helper |
Play/Pause
Toggle Mute
Fullscreen
Seek ±5s
Built for
The Stream PlatformScarlett Player is the official video player for The Stream Platform — powering live streaming, VOD, and PPV for creators and businesses.
Learn more →