# Video.js v10 — HTML Guides > Installation, migration, concepts, playback guides, customization, and tooling for Video.js. Every page below is also available as Markdown at its `.md` URL. This section in one file (about 140k tokens): https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/llms-full.txt ## Getting Started Install Video.js, customize a skin, understand its main pieces, check browser and AI tool support, and contribute. - [HTML Installation Guide](https://deploy-preview-9398--vjs10-site.netlify.app/docs/guides/installation/html.md): Install Video.js with HTML custom elements and build an accessible, customizable video player - [Vue Installation Guide](https://deploy-preview-9398--vjs10-site.netlify.app/docs/guides/installation/vue.md): Install Video.js in Vue or Nuxt and build a video player with HTML custom elements - [Svelte Installation Guide](https://deploy-preview-9398--vjs10-site.netlify.app/docs/guides/installation/svelte.md): Install Video.js in Svelte or SvelteKit and build a video player with HTML custom elements - [Shadcn Installation Guide](https://deploy-preview-9398--vjs10-site.netlify.app/docs/guides/installation/shadcn.md): Add editable React or HTML skin source with the Shadcn registry - [CDN Installation Guide](https://deploy-preview-9398--vjs10-site.netlify.app/docs/guides/installation/cdn.md): Load Video.js from jsDelivr and build an HTML video player without installing Video.js packages - [Build your own UI component](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/build-your-own-component.md): Create custom player controls that read state, dispatch actions, and stay accessible. - [Architecture](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/architecture.md): How Video.js players are structured — state, UI, media, and extensions - [Customize skins](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/customize-skins.md): Style a packaged Video.js skin or add its source to change controls, layout, styles, and interactions - [Why Video.js?](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/why-videojs.md): The open-source video player for React and HTML. Lightweight, accessible components built for performance and streaming. - [Browser support](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/browser-support.md): Browsers and rendering environments supported by Video.js 10, and how the packaged skins reach them - [Build with AI](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/build-with-ai.md): Install the Video.js skill and give AI coding agents version-matched docs for building and migrating players - [v10 Roadmap](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/v10-roadmap.md): Where Video.js v10 stands, what comes after 10.0, and the support plan for Video.js 8 - [Contribute to Video.js](https://github.com/videojs/video.js/blob/main/CONTRIBUTING.md) ## Frameworks Guides for using the HTML version of Video.js with Vue, Nuxt, Svelte, or SvelteKit. - [Vue](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/vue.md): Add Video.js to a Vue or Nuxt app - [Svelte](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/svelte.md): Add Video.js to a Svelte or SvelteKit app ## Environment TypeScript, bundlers, the CDN, self-hosting, and Content Security Policy. - [TypeScript](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/typescript.md): TypeScript version and module resolution requirements for Video.js packages - [Bundlers](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/bundlers.md): Bundler requirements for Video.js package exports, CSS, and wrapper libraries - [CDN](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/cdn.md): Understand the browser-ready bundles, stylesheets, and URL layout published by the Video.js CDN - [Self-host the player](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/self-hosting.md): Serve the Video.js HTML player from your own origin for offline, air-gapped, or restricted-network deployments - [Content Security Policy](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/content-security-policy.md): Allow the media, images, workers, and styles a Video.js player needs when your page enforces a Content Security Policy ## 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-9398--vjs10-site.netlify.app/docs/framework/html/guides/features.md): The state and actions each feature adds to the player - [Skins](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/skins.md): Packaged player designs that include both UI components and their styles. - [Presets](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/presets.md): Pre-packaged player configurations that bundle state management, skins, and media components for specific use cases. - [UI components](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/ui-components.md): How Video.js UI components use focused elements, data attributes for state, and compound composition. - [Accessibility](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/accessibility.md): How Video.js approaches accessibility, and what you should consider if you're deeply customizing your player - [Media sources](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/media-sources.md): Set what a media component plays and how its engine plays it with the structured source property ## Playback Guides for one player capability each: the recommended setup, how it works, browser constraints, variations, and troubleshooting. - [Autoplay](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/autoplay.md): Start playback automatically and handle browser autoplay restrictions. - [Automatically show and hide controls](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/controls.md): Show controls while the user is active, hide them during playback, and toggle them by touch. - [Add a poster and loading placeholder](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/poster.md): Set the image shown before playback, then add a lightweight placeholder while it loads - [Show captions and subtitles](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/captions.md): Show captions and subtitles, and let users turn them on and pick a language. - [Add keyboard shortcuts and gestures](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/keyboard-shortcuts.md): Add keyboard shortcuts, tap and double-tap gestures, and on-screen feedback for input actions. - [Play live streams](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/live-streams.md): Play live streams with live-edge tracking, DVR windows, and stream-type detection. - [Add a quality selector](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/quality.md): Read available renditions, let the engine adapt automatically, and offer manual quality selection. - [Go fullscreen and lock orientation](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/fullscreen.md): Present the player fullscreen with custom controls intact, and lock screen orientation on mobile. - [Use picture-in-picture](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/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-9398--vjs10-site.netlify.app/docs/framework/html/guides/thumbnails.md): Preview frames along the timeline while the user scrubs, powered by a storyboard track. - [Cast to AirPlay and Chromecast](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/casting.md): Send playback to AirPlay and Google Cast devices, with availability detection and connection state. - [Handle playback errors](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/playback-errors.md): Display playback failures, report them, and choose a useful recovery action. - [Remember user preferences](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/user-preferences.md): Save volume and caption preferences, restore them after loading, and adapt the pattern for quality selection. - [Add a background video](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/background-video.md): Add an accessible background video from an MP4, WebM, HLS, or Mux source - [Internationalize the player](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/internationalization.md): Translate player labels and announcements: shipped locale packs, custom translations, runtime switching, and server rendering. - [Monitor playback with Mux Data](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/mux-data.md): Measure startup time, rebuffering, failures, and watch time by adding the Mux Data extension to a player ## Migrate Guides for moving an existing player integration to Video.js v10, one per player you might be coming from. - [Migrate to Video.js v10](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/migrate.md): Understand how Video.js v10 differs from the players it brings together, and choose the migration guide for the player you use today. - [Migrate from Video.js 8](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/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-9398--vjs10-site.netlify.app/docs/framework/html/guides/migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10 using a player, media component, skin, and analytics extension - [Migrate from Plyr](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/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-9398--vjs10-site.netlify.app/docs/framework/html/guides/migrate-from-media-chrome.md): Move a Media Chrome player to Video.js v10, mapping its controller, controls, styles, and imperative calls - [Migrate from Vidstack](https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/guides/migrate-from-vidstack.md): Move a Vidstack Player integration to Video.js 10, mapping the player, providers, layouts, and media store onto composed components --- HTML documentation: https://deploy-preview-9398--vjs10-site.netlify.app/docs/framework/html/llms.txt All documentation: https://deploy-preview-9398--vjs10-site.netlify.app/llms.txt