[](https://travis-ci.org/kontorol/kontorol-player-js) [](https://gith


The Kontorol Player utilizes a highly modular approach for creating a powerful media player.
Each functionality of the player is isolated into separate packages, which are designed to deliver a specific set of abilities.
This approach enables extensibility, simplicity and easy maintenance.
The Kontorol Player integrates:
- PakhshKit JS - The core library.
- PakhshKit JS UI - The UI framework.
- PakhshKit JS DASH and PakhshKit JS HLS for HLS & MPEG-DASH media source extensions capabilities.
- PakhshKit JS IMA for ads and monetization.
- PakhshKit JS Providers as the backend media providers.
- PakhshKit JS Youbora, PakhshKit JS KAVA, and PakhshKit JS OTT Analytics as the different analytics plugins.
The Kontorol Player exposes two different players: the _Kontorol OVP Player_ and _Kontorol Cloud TV Player_. Each player integrates its related packages, as you can see in the following table:
| | PakhshKit JS | PakhshKit JS Providers | PakhshKit JS UI | PakhshKit JS DASH | PakhshKit JS HLS | PakhshKit JS Youbora | PakhshKit JS OTT Analytics | PakhshKit JS KAVA |
| --------------- | ------------ | ---------------------- | --------------- | ----------------- | ---------------- | -------------------- | -------------------------- | ----------------- |
| OVP Player | V | OVP | V | V | V | V | | V | |
| Cloud TV Player | V | OTT | V | V | V | V | V | V (\*) |
> \* Needs to be configured.
The Kontorol Player is written in [ECMAScript6], statically analysed using [Flow] and transpiled in ECMAScript5 using [Babel].
[flow]: https://flow.org/
[ecmascript6]: https://github.com/ericdouglas/ES6-Learning#articles--tutorials
[babel]: https://babeljs.io
[pakhshkit js player]: https://gitlab.com/kontorol/pakhshkit-js
First, clone and run [yarn] to install dependencies:
[yarn]: https://yarnpkg.com/lang/en/
```
git clone https://gitlab.com/kontorol/kontorol-player-js.git
cd kontorol-player-js
yarn install
Then, build the player
`javascript
// OVP player
yarn run build:ovp
// Cloud TV player
yarn run build:ott
`
Next, let's look at how to get started by creating a player using the Player API set.
- Configuration
- API
- Guides
Tests can be run locally via [Karma], which will run on Chrome, Firefox and Safari
[karma]: https://karma-runner.github.io/1.0/index.html
``
yarn run test
You can test individual browsers:
```
yarn run test:chrome
yarn run test:firefox
yarn run test:safari
We use ESLint recommended set with some additions for enforcing [Flow] types and other rules.
See ESLint config for full configuration.
We also use .editorconfig to maintain consistent coding styles and settings, please make sure you comply with the styling.
TBD
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details