---
title: Media agent for Shaka v4.0.3
source: https://docs.newrelic.com/docs/release-notes/streaming-browser-release-notes/streaming-browser-agent-shaka-26-03-09
---

This release introduces three new bitrate metrics for granular playback observability, QoE (Quality of Experience) support, and Shaka Player 5.x compatibility while maintaining backward compatibility with Shaka 4.x.

## New bitrate metrics

Three new attributes are now available to provide deeper insight into streaming performance:

| Attribute                | Source                             | Description                                                                            |
| ------------------------ | ---------------------------------- | -------------------------------------------------------------------------------------- |
| `contentManifestBitrate` | `stats.streamBandwidth`            | Total variant bitrate (video + audio) as declared in the manifest (Indicated Bitrate). |
| `contentMeasuredBitrate` | `stats.estimatedBandwidth`         | Estimated network bandwidth measured by Shaka's ABR algorithm (Observed Bitrate).      |
| `contentDownloadBitrate` | `(bytesDownloaded × 8) / playTime` | Effective download throughput across all downloaded media.                             |

Additionally, `contentBitrate` uses `track.videoBandwidth` (video-only bitrate) to differentiate it from other metrics that report combined video and audio bandwidth.

## Quality of Experience (QoE) support

QoE aggregate events are now supported via `video-core`. Enable them by setting `qoeAggregate: true` in the config:

```js
const options = {
  info: {
    beacon: 'xxxxxxxxxx',
    applicationID: 'xxxxxxx',
    licenseKey: 'xxxxxxxxxxx',
  },
  config: {
    qoeAggregate: true,
    qoeIntervalFactor: 2,
  },
};

const tracker = new ShakaTracker(player, options);
```

The following KPIs are tracked automatically:

| KPI                    | Description                                                |
| ---------------------- | ---------------------------------------------------------- |
| `startupTime`          | Time from content request to content start (ms).           |
| `peakBitrate`          | Maximum `contentBitrate` observed during playback.         |
| `averageBitrate`       | Weighted average bitrate across the session.               |
| `hadStartupFailure`    | `true` if a content error occurred before content started. |
| `hadPlaybackFailure`   | `true` if a content error occurred during playback.        |
| `totalRebufferingTime` | Total time spent rebuffering (ms).                         |
| `rebufferingRatio`     | Rebuffering time as a percentage of total playtime.        |
| `totalPlaytime`        | Total content playtime (ms).                               |
| `numberOfErrors`       | Total number of errors during the session.                 |

## Shaka Player 5.x compatibility

The tracker is now compatible with both Shaka Player 4.x and 5.x:

-   `getPlayerVersion()` resolves version across both major versions.
-   `onError()` handles both Shaka player errors (`e.detail`) and HTML video element errors (`e.target.error`).
-   Sample files updated for Shaka 5.x (removed deprecated `shaka.polyfill.installAll()`, updated player instantiation).

## Upgrade guide

Run the following following to update:

```sh
npm install @newrelic/video-shaka@4.0.3
```

To enable QoE, add `qoeAggregate: true` to your config options as shown above.

## Dependencies

Requires `@newrelic/video-core` v4.1.1 or later for QoE support.
