# Video.js v10 — Html Documentation
## Start here
Install Video.js, understand its main pieces, or move an existing player to Video.js 10.
- [Installation](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/installation.md): Install Video.js and build your first player with streaming support and accessible controls
- [Overview](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/overview.md): How Video.js players are structured — state, UI, media, and extensions
- [Why Video.js?](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/why-videojs.md): The open-source video player for React and HTML. Lightweight, accessible components built for performance and streaming.
- [v10 Roadmap](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/v10-roadmap.md): Timeline and milestones for Video.js v10 rebuild and the future of v8
### Migrate to Video.js 10
Guides for moving an existing player integration to Video.js v10, one per player you might be coming from.
- [Migrate from Video.js 8](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/migrate-from-video-js-8.md): Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
- [Migrate from Mux Player](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10, splitting one element into a player, a media, and a skin
- [Migrate from Plyr](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/migrate-from-plyr.md): Move an existing Plyr integration to Video.js v10, mapping Plyr options and its instance API onto components and player state
- [Migrate from Media Chrome](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/migrate-from-media-chrome.md): Map Media Chrome's controller, elements, and attributes onto Video.js v10, where most of the work is renaming and reshaping rather than rewriting
## Tooling
Guidance for AI tools, browser support, TypeScript, bundlers, and loading Video.js from a CDN.
- [Build with AI](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/build-with-ai.md): How to give AI tools the context they need to build Video.js players alongside you
- [Browser support](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/browser-support.md): Browsers and rendering environments supported by Video.js 10
- [TypeScript](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/typescript.md): TypeScript version and module resolution requirements for Video.js packages
- [Bundlers](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/bundlers.md): Bundler requirements for Video.js package exports, CSS, and wrapper libraries
- [CDN](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/cdn.md): The files the Video.js CDN serves and the layout rules behind their URLs
## Concepts
Understanding-oriented pages that explain how and why things work. Read these to build a mental model of the library.
- [Features](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/features.md): The state and actions each feature adds to the player
- [Skins](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/skins.md): Packaged player designs that include both UI components and their styles.
- [Presets](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/presets.md): Pre-packaged player configurations that bundle state management, skins, and media elements for specific use cases.
- [UI components](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/ui-components.md): How Video.js UI components use focused elements, data attributes for state, and compound composition.
- [Accessibility](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/accessibility.md): How Video.js approaches accessibility, and what you should consider if you're deeply customizing your player
- [Media sources](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/media-sources.md): Set what a media element plays and how its engine plays it with the structured source property
- [Mux Data](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/mux-data.md): Monitor playback quality and viewer experience by adding the Mux Data extension to a player
- [Security](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/security.md): How to configure Content Security Policy for your video player
- [Custom element lifecycle](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/concepts/custom-element-lifecycle.md): Choose the right Video.js HTML base class and clean up custom elements when they leave the page.
## How to
Task-oriented guides that each answer one goal in the reader's words. Some cover custom player UI; others configure a preset, skin, media component, or extension. Guides lead with the recommended path, then the constraints and variations needed to apply it.
- [Customize skins](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/customize-skins.md): Style a packaged Video.js skin or copy its source to change controls, layout, styles, and interactions
- [Build your own UI component](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/build-your-own-component.md): Create custom player controls that read state, dispatch actions, and stay accessible.
- [Add a poster and loading placeholder](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/add-a-poster-and-loading-placeholder.md): Set the image shown before playback, then add a lightweight placeholder while it loads
### Integrate with a framework
Guides for using the HTML version of Video.js with Vue, Nuxt, Svelte, or SvelteKit.
- [Use Video.js with Vue and Nuxt](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/use-videojs-with-vue.md): Add Video.js to a Vue or Nuxt app
- [Use Video.js with Svelte and SvelteKit](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/use-videojs-with-svelte.md): Add Video.js to a Svelte or SvelteKit app
- [Autoplay](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/autoplay.md): Start playback automatically and handle browser autoplay restrictions.
- [Automatically show and hide controls](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/show-and-hide-controls.md): Show controls while the user is active, hide them during playback, and toggle them by touch.
- [Show captions and subtitles](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/show-captions-and-subtitles.md): Show captions and subtitles, and let users turn them on and pick a language.
- [Add keyboard shortcuts and gestures](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/add-keyboard-shortcuts-and-gestures.md): Add keyboard shortcuts, tap and double-tap gestures, and on-screen feedback for input actions.
- [Play live streams](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/play-live-streams.md): Play live streams with live-edge tracking, DVR windows, and stream-type detection.
- [Add a quality selector](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/add-quality-selector.md): Read available renditions, let the engine adapt automatically, and offer manual quality selection.
- [Go fullscreen and lock orientation](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/go-fullscreen-and-lock-orientation.md): Present the player fullscreen with custom controls intact, and lock screen orientation on mobile.
- [Use picture-in-picture](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/use-picture-in-picture.md): Pop the video into a floating window, with availability detection and state that tracks every entry path.
- [Show timeline thumbnail previews](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/show-timeline-thumbnail-previews.md): Preview frames along the timeline while the user scrubs, powered by a storyboard track.
- [Cast to AirPlay and Chromecast](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/cast-to-airplay-and-chromecast.md): Send playback to AirPlay and Google Cast devices, with availability detection and connection state.
- [Handle playback errors](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/handle-playback-errors.md): Surface terminal playback errors and give users a useful next step.
- [Remember user preferences](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/remember-user-preferences.md): Persist volume, caption, and quality preferences across sessions by subscribing to player state.
- [Add a background video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/add-a-background-video.md): Add an accessible background video from an MP4, WebM, HLS, or Mux source
- [Internationalize the player](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/internationalize-the-player.md): Translate player labels and announcements: shipped locale packs, custom translations, runtime switching, and server rendering.
- [Self-host the player](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/how-to/self-host-the-player.md): Serve the Video.js HTML player from your own origin for offline, air-gapped, or restricted-network deployments
## Components
API reference for skins, interface components, media components, and service integrations.
### Skins
API reference for the packaged skins each preset ships.
- [video-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/video-skin.md): The video preset's default skin with the modern, frosted look
- [video-minimal-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/video-minimal-skin.md): The video preset's visually lighter skin, closer to a classic control bar
- [audio-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/audio-skin.md): The audio preset's default skin with the modern, frosted look
- [audio-minimal-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/audio-minimal-skin.md): The audio preset's visually lighter skin, closer to a classic control bar
- [live-video-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/live-video-skin.md): The live video preset's default skin, which swaps time controls for a Live button
- [live-video-minimal-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/live-video-minimal-skin.md): The live video preset's visually lighter skin, closer to a classic control bar
- [live-audio-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/live-audio-skin.md): The live audio preset's default skin, which swaps time controls for a Live button
- [live-audio-minimal-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/live-audio-minimal-skin.md): The live audio preset's visually lighter skin, closer to a classic control bar
- [background-video-skin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/background-video-skin.md): The background preset's chrome-less skin for ambient video
### UI
API reference for components used to build a media player interface.
- [video-player](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/player.md): The state boundary — creates a store and broadcasts it to all descendants.
- [media-container](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/player-container.md): The player's visual and interaction surface for layout, fullscreen, focus, and user activity.
- [media-airplay-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/airplay-button.md): Accessible AirPlay toggle button that opens the WebKit playback target picker and reflects session state
- [media-alert-dialog](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/alert-dialog.md): A modal alert dialog for urgent messages that require acknowledgement
- [media-audio-track-radio-group](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/audio-track-radio-group.md): A menu radio group for selecting an audio track
- [media-buffering-indicator](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/buffering-indicator.md): Loading indicator that displays when the video player is buffering or waiting for data
- [media-captions-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/captions-button.md): Accessible captions toggle button with availability detection and state reflection
- [media-captions-radio-group](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/captions-radio-group.md): A menu radio group for selecting caption and subtitle tracks
- [media-cast-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/cast-button.md): Accessible Cast toggle button with state reflection and keyboard support
- [media-controls](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/controls.md): Container component for composing and auto-hiding video player controls on user interaction
- [media-dialog](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/dialog.md): A modal dialog for application content, including players opened from a thumbnail
- [media-error-dialog](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/error-dialog.md): An alert dialog that presents and dismisses playback errors
- [media-fullscreen-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/fullscreen-button.md): Accessible fullscreen toggle button with keyboard support and state reflection
- [media-gesture](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/gesture.md): Map tap and double-tap gestures to player actions
- [media-hotkey](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/hotkey.md): Register a keyboard shortcut that invokes a player action
- [media-live-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/live-button.md): Accessible live indicator button that seeks to the live edge when pressed
- [media-menu](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/menu.md): A composable menu component for settings, option selection, and actions
- [media-mute-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/mute-button.md): Accessible mute/unmute button with keyboard support and volume state reflection
- [media-pip-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/pip-button.md): Accessible picture-in-picture toggle button with keyboard support and state reflection
- [media-play-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/play-button.md): Accessible play/pause button with keyboard support and customizable rendering
- [media-playback-rate-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/playback-rate-button.md): A button that cycles through playback speed rates
- [media-playback-rate-radio-group](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/playback-rate-radio-group.md): A menu radio group for selecting playback speed
- [media-popover](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/popover.md): A popover component for displaying contextual content anchored to a trigger
- [media-poster](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/poster.md): Poster image component that displays a thumbnail until video playback starts
- [media-quality-radio-group](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/quality-radio-group.md): A menu radio group for selecting video quality
- [media-seek-button](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/seek-button.md): Accessible seek button for skipping forward or backward by a configurable number of seconds
- [media-seek-indicator](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/seek-indicator.md): A temporary visual indicator for keyboard and gesture seeking
- [media-slider](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/slider.md): A composable slider component with track, fill, thumb, preview, and value parts
- [media-status-announcer](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/status-announcer.md): Announce player state changes through a persistent status live region
- [media-status-indicator](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/status-indicator.md): Display temporary visual feedback for keyboard and gesture actions
- [media-thumbnail](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/thumbnail.md): Time-based thumbnail preview component for timeline scrubbing and hover previews
- [media-time](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/time.md): Time display components for showing current time, duration, and remaining time in a video player
- [media-time-slider](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/time-slider.md): A slider component for seeking through media playback time
- [media-title](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/title.md): Displays the resolved content title for the current media
- [media-tooltip](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/tooltip.md): A tooltip component for displaying contextual labels on hover and focus
- [media-volume-indicator](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/volume-indicator.md): Display temporary visual feedback for keyboard and gesture volume actions
- [media-volume-popover](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/volume-popover.md): A volume-aware popover that keeps mute available when volume level controls are unavailable
- [media-volume-slider](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/volume-slider.md): A slider component for controlling media playback volume
### Media
API reference for media components that handle streaming protocols and playback.
- [audio](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/audio.md): Native audio playback that can provide media to a Video.js player
- [background-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/background-video.md): Decorative background video element with automatic muting and looping
- [cloudflare-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/cloudflare-video.md): Video component that plays Cloudflare Stream videos through the Stream player
- [dash-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/dash-video.md): DASH video element powered by dash.js for adaptive bitrate streaming
- [hls-audio](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/hls-audio.md): Audio-only HLS element that plays the audio rendition of an HLS stream
- [hls-background-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/hls-background-video.md): HLS background video without controls, audio, captions, or adaptive quality
- [hls-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/hls-video.md): Lightweight HLS video element with minimal bundle size
- [hlsjs-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/hlsjs-video.md): HLS video element powered by hls.js for adaptive bitrate streaming
- [mux-audio](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/mux-audio.md): Audio element for Mux-hosted HLS streams
- [mux-background-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/mux-background-video.md): Mux-specific name for the HLS background video component
- [mux-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/mux-video.md): Video element for Mux-hosted HLS streams
- [native-hls-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/native-hls-video.md): HLS video element using the browser's built-in HLS support
- [shaka-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/shaka-video.md): Video element powered by Shaka Player for DASH, HLS, and progressive playback with DRM
- [spotify-audio](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/spotify-audio.md): Audio component that plays Spotify tracks, episodes, playlists, and shows through the Spotify embed
- [tiktok-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/tiktok-video.md): Video component that plays TikTok videos through the TikTok embed player
- [twitch-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/twitch-video.md): Video component that plays Twitch videos and live channels through the Twitch embed player
- [video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/video.md): Native video playback that can provide media to a Video.js player
- [vimeo-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/vimeo-video.md): Video component that plays Vimeo videos and live events through the Vimeo player
- [wistia-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/wistia-video.md): Video component that plays Wistia-hosted videos through Wistia's web component
- [youtube-video](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/youtube-video.md): Video component that plays YouTube videos and playlists through the YouTube IFrame player
### Extensions
API reference for extensions that connect external services to the player.
- [google-cast](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/google-cast.md): Options for the Google Cast extension that configures the receiver and load request
- [mux-data](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/mux-data.md): Options for the Mux Data extension that monitors playback quality
## Helpers
Reference for player features and lower-level tools used to build or extend a player.
### Player Features
API reference for the feature modules passed to createPlayer, which provide player capabilities and state.
- [createSelector](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/create-selector.md): Create a type-safe selector for a store slice's state
- [Buffer](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-buffer.md): Buffered and seekable time range state for the player store
- [Controls](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-controls.md): User activity and controls visibility state for the player store
- [Error](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-error.md): Media error state and actions for the player store
- [Fullscreen](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-fullscreen.md): Fullscreen state and actions for the player store
- [Live](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-live.md): Live edge state for the player store
- [Metadata](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-metadata.md): Resolved title and poster values for the player store
- [Orientation lock](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-orientation-lock.md): Screen orientation locking while fullscreen is active
- [Picture-in-picture](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-pip.md): Picture-in-picture state and actions for the player store
- [Playback](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-playback.md): Play/pause state and actions for the player store
- [Playback rate](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-playback-rate.md): Playback speed state and actions for the player store
- [Quality](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-quality.md): Video rendition state and actions for the player store
- [Audio track](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-audio-track.md): Audio track state and actions for the player store
- [Remote Playback](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-remote-playback.md): Remote playback state and actions for the player store
- [Source](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-source.md): Media source state and actions for the player store
- [Stream type](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-stream-type.md): Stream delivery type (live / on-demand) state for the player store
- [Text tracks](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-text-tracks.md): Subtitles, captions, and chapter track state for the player store
- [Time](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-time.md): Playback position and duration state for the player store
- [Volume](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/feature-volume.md): Volume level and mute state for the player store
### Utilities
API reference for the hooks, utilities, controllers, and mixins used to integrate a player into an application.
- [createPlayer](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/html-create-player.md): Factory function that creates a typed player element and controller for HTML custom elements
- [PlayerController](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/player-controller.md): Reactive controller for accessing player store state in HTML custom elements
- [createI18n](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/create-i18n.md): Factory that creates framework i18n helpers with custom loading options
- [media-i18n](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/media-i18n.md): HTML custom element that resolves locale and supplies translations to descendants
- [media-text](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/media-text.md): HTML custom element that renders a translated string by semantic key
#### Advanced
Lower-level translation, player context, lifecycle, attachment, and state tools.
- [Translation phrases](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/translation-phrases.md): Semantic i18n keys, their English defaults, and the player UI that uses them
- [registerI18n](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/register-i18n.md): Register or merge translation strings for a BCP 47 locale tag in the global i18n registry
- [getI18nTranslations](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/get-i18n-translations.md): Read the merged translation map for a locale using BCP 47 parent-chain fallback
- [hasRegisteredLocale](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/has-registered-locale.md): Check whether an exact locale tag exists in the global i18n registry
- [onI18nRegistryChange](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/on-i18n-registry-change.md): Subscribe to global i18n registry mutations
- [createTranslator](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/create-translator.md): Build a typed translator from a resolved translation map
- [i18nContext](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/html-i-18-n-context.md): Default HTML context carrying the active translator and locale
- [I18nController](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/i-18-n-controller.md): Reactive controller for consuming translator and locale values from an HTML i18n context
- [AriaKeyShortcutsController](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/aria-key-shortcuts-controller.md): Reactive controller that exposes registered hotkey shortcut metadata
- [MediaAttachMixin](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/media-attach-mixin.md): Mixin for custom media elements to register themselves with the provider via context
- [playerContext](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/player-context.md): The default player context instance for consuming the player store in controllers
- [SnapshotController](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/snapshot-controller.md): Reactive controller for subscribing to a State container in HTML custom elements
- [StoreController](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/store-controller.md): Reactive controller for subscribing to store state in HTML custom elements
- [SubscriptionController](https://deploy-preview-2635--vjs10-site.netlify.app/docs/framework/html/reference/subscription-controller.md): Reactive controller that resolves a store and manages a derived subscription
---
All documentation: https://deploy-preview-2635--vjs10-site.netlify.app/llms.txt