À propos du projet

Kaltura Player JS Platform est un lecteur multimédia JavaScript modulaire destiné à créer des expériences de lecture cloud TV et OVP (plateforme vidéo en ligne). Il est basé sur le cœur de lecteur PlayKit JS et est distribué sous forme de package npm @playkit-js/kaltura-player-js. Le projet adopte une approche hautement modulaire : chaque capacité du lecteur est isolée dans des packages distincts, ce qui, selon le README, permet l'extensibilité, la simplicité et une maintenance plus facile. Les packages intégrés incluent PlayKit JS (bibliothèque cœur), PlayKit JS UI (framework d'interface), PlayKit JS DASH et PlayKit JS HLS pour les extensions de sources média MPEG-DASH et HLS, PlayKit JS IMA pour les publicités et la monétisation, PlayKit JS Providers comme fournisseurs de médias backend, et des plugins d'analytique tels que PlayKit JS Youbora, PlayKit JS KAVA et PlayKit JS OTT Analytics. Deux variantes de lecteur sont exposées. Le Kaltura OVP Player combine PlayKit JS, les fournisseurs OVP, l'interface, DASH, HLS, Youbora et KAVA. Le Kaltura Cloud TV Player combine PlayKit JS, les fournisseurs OTT, l'interface, DASH, HLS, Youbora, OTT Analytics et KAVA (qui doit être configuré). La base de code est écrite en ECMAScript 6, analysée statiquement avec Flow et transpilée en ECMAScript 5 à l'aide de Babel. Pour démarrer, il faut cloner le dépôt, exécuter yarn install, puis construire soit le lecteur OVP (yarn run build:ovp), soit le lecteur Cloud TV (yarn run build:ott). La documentation couvre la configuration, l'API et des guides, dont un guide de configuration du lecteur. Les tests s'exécutent localement via Karma sur Chrome, Firefox et Safari, avec des commandes individuelles par navigateur disponibles. Le style de code est imposé avec ESLint en utilisant l'ensemble recommandé plus des règles liées à Flow, et un fichier .editorconfig maintient une mise en forme cohérente. Le projet utilise SemVer pour le versionnage et est sous licence AGPL-3.0. Les détails de compatibilité sont marqués comme TBD dans le README.