Skip to content

kaltura/playkit-js-transcript

Repository files navigation

PlayKit JS Transcript - plugin for the [PlayKit JS Player]

Build Status code style: prettier

PlayKit JS Transcript is written in ECMAScript6, statically analysed using Typescript and transpiled in ECMAScript5 using Babel.

Getting Started

Prerequisites

The plugin requires Kaltura Player to be loaded first.

Installing

First, clone and run yarn to install dependencies:

git clone https://github.com/kaltura/playkit-js-transcript.git
cd playkit-js-transcript
yarn install

Building

Then, build the plugin

yarn run build

Testing

The plugin uses cypress tool for e2e tests

yarn run test

UI conf file (cypress/public/ui-conf.js) contains Kaltura player and plugin dependencies. Keep Kaltura player and dependency versinos aligned to currently released versions.

Embed the library in your test page

Finally, add the bundle as a script tag in your page, and initialize the player

<script type="text/javascript" src="/PATH/TO/FILE/kaltura-player.js"></script>
<!--Kaltura player-->
<script type="text/javascript" src="/PATH/TO/FILE/playkit-kaltura-cuepoints.js"></script>
<!--PlayKit cuepoints plugin-->
<script type="text/javascript" src="/PATH/TO/FILE/playkit-ui-managers.js"></script>
<!--PlayKit ui-managers plugin-->
<script type="text/javascript" src="/PATH/TO/FILE/playkit-transcript.js"></script>
<!--PlayKit transcript plugin-->
<div id="player-placeholder" style="height:360px; width:640px">
  <script type="text/javascript">
    var playerContainer = document.querySelector("#player-placeholder");
    var config = {
     ...
     targetId: 'player-placeholder',
     plugins: {
      'playkit-js-transcript': { ... },
      uiManagers: { ... },
      kalturaCuepoints: { ... },
     }
     ...
    };
    var player = KalturaPlayer.setup(config);
    player.loadMedia(...);
  </script>
</div>

Documentation

Transcript plugin configuration can been found here:

Transcript plugin dependencies can been found here:

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the AGPL-3.0 License - see the LICENSE.md file for details

Commands

Run dev server: yarn dev;
Bump version: yarn release;

Configuration

Configuration Structure

//Default configuration
"transcript" = {};
//Plugin params
"transcript" = {
  expandMode?: string, // optional
  expandOnFirstPlay?: boolean, // optional
  showTime?: boolean, // optional
  position?: string, // optional
  scrollOffset?: number // optional
  searchDebounceTimeout?: number // optional
  searchNextPrevDebounceTimeout?: number // optional
  downloadDisabled?: boolean // optional
  printDisabled?: boolean // optional
}

config.expandMode

Type: string
Default: alongside;(‘alongside', ‘hidden’, 'over’)

config.expandOnFirstPlay

Type: boolean
Default: true

config.showTime

Type: boolean
Default: true

config.position

Type: string
Default: bottom;(‘left’, ‘right', ‘top’, 'bottom’)

config.scrollOffset

Type: number
Default: 0

config.searchDebounceTimeout

Type: number
Default: 250

config.searchNextPrevDebounceTimeout

Type: number
Default: 100

config.downloadDisabled

Type: boolean
Default: false

config.printDisabled

Type: boolean
Default: false

Dependencies

Plugin dependencies:
Cue Points
UI Managers

Dev env

Node version: up to 14+
If nvm installed: nvm use change version of current terminal to required.

ARM Architecture support

Install dependencies with npm install --target_arch=x64 set target arch for running it through Rosetta (requires Rosetta installation).