api.video is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.
hls.js module to call the api.video analytics collector.
Include https://unpkg.com/@api.video/hlsjs-player-analytics in your web page.
<script src="https://unpkg.com/@api.video/hlsjs-player-analytics"></script>Include the module in your HTML file like so:
<html>
    <head>
        <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
        <script src="https://unpkg.com/@api.video/hlsjs-player-analytics"></script>
    </head>
    
    <body>
        <video id="video" controls width=640 height=480></video>
    <script>
        var video = document.getElementById('video');
        
        var videoSrc = 'https://cdn.api.video/vod/vi5oDagRVJBSKHxSiPux5rYD/hls/manifest.m3u8';
        if (Hls.isSupported()) {
            var hls = new Hls();
            new HlsJsApiVideoAnalytics(hls);
            hls.loadSource(videoSrc);
            hls.attachMedia(video);
        }
    </script>
    </body>
</html>Then, before having instantiated Hls, instantiate a HlsJsApiVideoAnalytics object.
The HlsJsApiVideoAnalytics constructor take the following parameters:
| Parameter name | Mandatory | Type | Description | 
|---|---|---|---|
| hls | yes | Hls instance | 
the instance of Hls | 
| options | no | HlsJsApiVideoAnalyticsOptions (see below) | 
optional options | 
Available options (HlsJsApiVideoAnalyticsOptions):
| Option name | Mandatory | Type | Description | 
|---|---|---|---|
| userMetadata | no | { [name: string]: string }[] | 
object containing metadata (see Full example below) | 
| sequence | no | {start: number; end?: number;}  | 
if only a sequence of the video is going to be played | 
var hls = new Hls();
new HlsJsApiVideoAnalytics(hls, {
    sequence: {
        start: 10,
        end: 50
    },
    userMetadata: {
        gender: "male"
    }
});