Harvey Zhao b11f0eb99a refactor: update cursor styles and progress variable
- Removed cursor pointer from .art-mask-show in mask.less for better UX.
- Added cursor pointer to .art-progress in progress.less to indicate interactivity.
- Adjusted hover effect for .art-control-progress-inner in progress.less to enhance visual feedback.
- Increased --art-progress-top-gap variable from 8px to 10px in variables.less for improved layout.
- Removed cursor pointer from .art-video in video.less to streamline styling.
2026-03-08 14:53:29 +08:00
2025-08-03 13:17:33 +08:00
2018-11-21 18:37:25 +08:00
2018-10-10 14:23:06 +08:00
2026-03-07 17:02:59 +08:00
2025-08-03 13:17:33 +08:00

logo

ArtPlayer.js

🎨 ArtPlayer.js is a modern and full featured HTML5 video player

Size Downloads Version License jsdelivr

・ Online Editor ・ API Document ・ Danmuku ・ Changelog ・ 🤖LLMs ・

screenshot

Home Page

https://artplayer.org

Mobile Demo

Features

ArtPlayer.js is an easy-to-use and feature-rich HTML5 video player, and most of the player's functional controls support customization, which makes it easy to connect with your business logic. In addition, it directly supports .vtt, .ass and .srt subtitle formats. Integration with other dependencies such as flv.js, hls.js, dash.js, etc. is also very simple. The code is highly decoupled, the structure and logic are clear, and it is easy to track errors and add new features.

Install

Install with npm:

$ npm install artplayer

Or install with yarn:

$ yarn add artplayer
import Artplayer from 'artplayer'

Or umd build also available:

<script src="path/to/artplayer.js"></script>

Or from CDN:

<!-- jsdelivr -->
<script src="https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js"></script>

<!-- unpkg -->
<script src="https://unpkg.com/artplayer/dist/artplayer.js"></script>

Will expose the global variable to window.Artplayer.

Usage

<div class="artplayer-app"></div>
let art = new Artplayer({
  container: '.artplayer-app',
  url: 'path/to/video.mp4',
})

Plugins

Name Describe State
artplayer-plugin-danmuku Danmuku (bullet comment) system
artplayer-plugin-hls-control HLS quality control
artplayer-plugin-dash-control DASH quality control
artplayer-plugin-vtt-thumbnail VTT thumbnail preview
artplayer-plugin-multiple-subtitles Multiple subtitles support
artplayer-plugin-chromecast Google Chromecast support
artplayer-plugin-vast VAST/VPAID advertising
artplayer-plugin-chapter Video chapters support
artplayer-plugin-auto-thumbnail Auto-generated thumbnails
artplayer-plugin-ambilight Ambilight effect
artplayer-plugin-document-pip Document Picture-in-Picture
artplayer-plugin-audio-track Independent audio track playback
artplayer-plugin-jassub ASS/SSA subtitle support
artplayer-plugin-danmuku-mask Danmuku masking (smart blocking)
artplayer-plugin-asr Automatic Speech Recognition
artplayer-plugin-ads Video advertising plugin WIP

Libraries

Name Describe State
hls.js HLS client
dash.js MPEG DASH player
flv.js HTML5 FLV Player
mpegts.js MPEG-TS/FLV Player
webtorrent.js Streaming torrent client

Proxys

Name Describe State
Canvas Proxy video to canvas
Mediabunny Mediabunny proxy

Changelog

CHANGELOG.md

Contributing

CONTRIBUTING.md

Donations

We accept donations through these channels:

pay

QQ Group

QQ Group

License

MIT © Harvey Zhao

Languages
JavaScript 89%
Less 9.8%
TypeScript 0.7%
Vue 0.3%
HTML 0.1%