[](https://github.com/kaltura/playkit-js-moderation/actions/workflows/run_canary_full_flow.yaml) [



Moderation plugin provides applications ability to add reporting mechanisem for the content that being played in case users find it not appropriate.
PlayKit JS Moderation is written in [ECMAScript6], statically analysed using [Typescript] and transpiled in ECMAScript5 using [Babel].
[typescript]: https://www.typescriptlang.org/
[ecmascript6]: https://github.com/ericdouglas/ES6-Learning#articles--tutorials
[babel]: https://babeljs.io
The plugin requires [Kaltura Player] to be loaded first.
[kaltura player]: https://github.com/kaltura/kaltura-player-js
First, clone and run [yarn] to install dependencies:
[yarn]: https://yarnpkg.com/lang/en/
```
git clone https://github.com/kaltura/playkit-js-moderation.git
cd playkit-js-moderation
yarn install
Then, build the plugin
`javascript`
yarn run build
The plugin uses cypress tool for e2e tests
`javascript`
yarn run test
UI conf file (cypress/public/ui-conf.js) contains Kaltura player and plugin dependencies.
Keep Kaltura player and dependency versions aligned to currently released versions.
Finally, add the bundle as a script tag in your page, and initialize the player
`html`
Moderation plugin configuration can been found here:
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.md file for details
#### Configuration Structure
`js
//Plugin params
"playkit-js-moderation": {
reportLength?: number, // optional
subtitle?: string, // optional extra information to be displayed
notificatonDuration?: number, // miliseconds, optional
moderateOptions?: Array< {id: number, label: string} > // optional
}
`
#### Plugin Default configuration
"playkit-js-moderation" = {};
``
"playkit-js-moderation": {
"reportLength": 500,
"subtitle": "",
"notificatonDuration": 5000,
"moderateOptions": [
{
"id": 1,
"label": "Sexual Content"
},
{
"id": 2,
"label": "Violent Or Repulsive"
},
{
"id": 3,
"label": 'Harmful Or Dangerous Act"
},
{
"id": 4,
"label": "Spam / Commercials"
},
{
"id": 5,
"label": "Copyright Violation"
},
{
"id": 6,
"label": "Terms of Use Violation"
}
]
}
> ### config.reportLength
>
> ##### Type: number500
>
> ##### Default:
>
##
> ### config.subtitle
>
> ##### Type: string-
>
> ##### Default:
>
##
> ### config.notificatonDuration
>
> ##### Type: number5000
>
> ##### Default:
>
##
> ### config.moderateOptions
>
> ##### Type: Array< {id: number, label: string} >`
>
> ##### Default: js``
moderateOptions = [
{id: 1, label: 'Sexual Content'},
{id: 2, label: 'Violent Or Repulsive'},
{id: 3, label: 'Harmful Or Dangerous Act'},
{id: 4, label: 'Spam / Commercials'}
]
>