peer5

Peer5 npm module

Usage no npm install needed!

<script type="module">
  import peer5 from 'https://cdn.skypack.dev/peer5';
</script>

README

peer5

This is the Peer5 npm module.

It is used to load peer5 as part of a bundle asynchronously without having to add a script tag to your page.

Installation

npm install --save peer5

How to use

Steps:

  1. Register at https://app.peer5.com/register in order to retrieve your API_KEY.
  2. require the peer5 loader (require('peer5/loader')).
  3. pass the loader your API_KEY, and the name of the player you are using. (loader('YOUR_API_KEY', 'YOUR_PLAYER_NAME'))
  4. The returned promise will resolve when ever the peer5 scripts have been loaded, and you can start using your player.

Currently the supported players are:
videojs5, videojs6, videojs7, jwplayer7, jwplayer8, bitmovin, clappr, shakaplayer, hlsjs

Example for Clappr

let Clappr = require('clappr');
const peer5Promise = require('peer5/loader')('YOUR_API_KEY', 'clappr');

peer5Promise.then((peer5) => {
  // integrate the player with Peer5
  Clappr = peer5.integrate(Clappr);

  // You can now create your player instance
  const player = new Clappr.Player({});
});

Example for HlsJS

let Hls = require('hls.js');
const peer5Promise = require('peer5/loader')('YOUR_API_KEY', 'hlsjs');

peer5Promise.then((peer5) => {
  // integrate the player with Peer5
  Hls = peer5.integrate(Hls);

  // You can now create your player instance
  const player = new Hls({});
});

Example for HlsJS + Timeout

let Hls = require('hls.js');
const peer5Promise = require('peer5/loader')('YOUR_API_KEY', 'hlsjs');

Promise.race([
  new Promise((resolve) => setTimeout(resolve, 2000)),
  peer5Promise.then(() => {
    // integrate the player with Peer5
    Hls = peer5.integrate(Hls);
  })
]).then(() => {
  // You can now create your player instance
    const player = new Hls({});
});

Note: If you are using a Single Page Application,
you can use the same example as above multiple times, and peer5 will only be loaded once.

Note: This module relies on the availability of a global Promise object. In case you are targeting older browsers that don't support Promises natively, please be sure to include a polyfill.