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.
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 embed - data attributes, UMD and ESM bundles, iframe helper |
| @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/chapters | Chapter markers on the progress bar, chapter list, seek to chapter |
| @scarlett-player/gestures | Touch gestures - double-tap seek, tap to toggle controls |
| @scarlett-player/share | Native share sheet, copy link, timestamps and embed codes |
| @scarlett-player/clips | Viewer-created clips - two-handle range selection, loop preview, host submission |
| @scarlett-player/watermark | Anti-piracy text or image overlay with dynamic repositioning |
| @scarlett-player/vue | Vue 3 component wrapper |
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 →