Skip to content
Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element.
Branch: master
Clone or download
matvp91 Merge pull request #32 from matvp91/feature/state-refactor
[WIP] Refactor state transitions & events bound to state changes.
Latest commit a7166d8 Apr 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Feb 8, 2019
bin Initial commit. Jan 9, 2019
dev Added StateExtension tests. Apr 16, 2019
docs Upgraded to 1.3.5 Apr 15, 2019
lib v1.3.5 Apr 15, 2019
src Added StateExtension tests. Apr 16, 2019
tests Added StateExtension tests. Apr 16, 2019
.babelrc Introduced babel. Jan 24, 2019
.browserslistrc Introduced babel. Jan 24, 2019
.prettierrc Initial commit. Jan 9, 2019
.travis.yml Downgraded to node 11.10.1 for CI specifically due to Symbol.toString… Mar 15, 2019 Create Feb 8, 2019
LICENSE Initial commit. Jan 9, 2019 Update Apr 10, 2019
jest.config.js Refactored hooks. Jan 10, 2019
package.json v1.3.5 Apr 15, 2019
tsconfig.json Added context menu and added support for multiple tracks with HLS. Feb 13, 2019
webpack.config.js Added UI_STATE_UPDATE and UI_VIEW_CHANGE. Mar 26, 2019
yarn.lock Added smooth transition of player position. Mar 26, 2019


Highly extensible, modern, JavaScript player. 👊

Travis CI

  • Strict defined API, which makes it easy to build analytics and various other plugins on top of indigo-player.
  • Dynamic bundle loading, automatically determines and loads which modules are needed for playback.
  • Highly modular plugin system to extend functionality without modifying it's core.
  • Out-of-the-box features such as subtitles, thumbnails, quality selection if applicable, ...
  • React based UI.


Visit the documentation. 😎

Getting started

The example below will load a simple MP4 file, and attempt to autoplay it.

    <div id="playerContainer"></div>
    <script src=""></script>
      const config = {
        sources: [
            type: 'mp4',
            src: '',

      const element = document.getElementById('playerContainer');
      const player = IndigoPlayer.init(element, config);

      // You can use the player object now to access the player and it's methods (play, pause, ...)


Much ❤️ on getting the word out!

Cheers 🍺

You can’t perform that action at this time.