What's changed
- feat: Add Vega Video Monitoring support by @rajeevkumar-nr in https://github.com/newrelic/video-html5-js/pull/58
- Release/06 jul2026 by @rajeevkumar-nr in https://github.com/newrelic/video-html5-js/pull/59
- feat: Update html5 tracker version by @rajeevkumar-nr in https://github.com/newrelic/video-html5-js/pull/61
Full Changelog: https://github.com/newrelic/video-html5-js/compare/v4.1.2...v5.0.0
What's changed
- chore: release updated by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/39
- Fix/workflow by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/40
- chore: add smart release detection and improve workflow triggers by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/41
- fix: buffer end fix by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/44
- Release/25 may2026 by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/45
- chore: add release notes docs PR workflow by @ametku in https://github.com/newrelic/video-html5-js/pull/46
- chore: release workflow updated by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/49
- fix: address docs reviewer comments on release notes PR format by @mlychndnnr in https://github.com/newrelic/video-html5-js/pull/52
- chore: trigger release-notes-docs-pr after release creation by @ametku in https://github.com/newrelic/video-html5-js/pull/56
- chore(release): v4.1.2 by @github-actions[bot] in https://github.com/newrelic/video-html5-js/pull/50
New Contributors
- @github-actions[bot] made their first contribution in https://github.com/newrelic/video-html5-js/pull/50
Full Changelog: https://github.com/newrelic/video-html5-js/compare/v4.1.1...v4.1.2
Qué cambió
- chore: versión actualizada por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/39
- Fix/flujo de trabajo por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/40
- chore: agregar detección inteligente de versiones y mejorar los activadores del flujo de trabajo por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/41
- fix: corrección de fin de búfer por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/44
- Release/25 may2026 por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/45
- chore: agregar flujo de trabajo de PR de documentos de notas de la versión por @ametku en https://github.com/newrelic/video-html5-js/pull/46
- chore: flujo de trabajo de la versión actualizado por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/49
- fix: abordar los comentarios del revisor de documentos sobre el formato del PR de notas de la versión por @mlychndnnr en https://github.com/newrelic/video-html5-js/pull/52
- chore: desencadenar release-notes-docs-pr después de la creación de la versión por @ametku en https://github.com/newrelic/video-html5-js/pull/56
- chore(release): v4.1.2 por @github-actions[bot] en https://github.com/newrelic/video-html5-js/pull/50
Nuevos colaboradores
- @github-actions[bot] hizo su primera contribución en https://github.com/newrelic/video-html5-js/pull/50
Changelog completo: https://github.com/newrelic/video-html5-js/compare/v4.1.1...v4.1.2
Highlights
- Explicit opt-in for AWS MediaTailor, with full support for custom CDN domains.
- New
config.ad.typeAPI to choose between CSAI and SSAI (DAI,MT) ad tracking — no more URL-based guessing for SSAI. - End-to-end logging through
nrvideo.Log, with active detection mode logged at startup.
Features
MediaTailor custom CDN support
Replaced URL-based auto-detection with explicit opt-in.
- Enabled the tracker via
mediatailor: true(ormediatailor: { trackingUrl, adSegmentPrefix }), supporting both default AWS hostnames and custom CDN domains. - Added
MT_DEFAULT_AD_SEGMENT_PATH(/tm/) constant for AWS-recommended CDN ad-segment path; ad segments rewritten to a custom CDN domain under/tm/are detected automatically. - Updated
isMediaTailorSegment()to check the default AWS segments hostname, the/tm/path, and an optional customer-suppliedadSegmentPrefix. - Threaded
adSegmentPrefixthrough HLS (VHS) and DASH manifest parsing. - Added explicit session initialization via
mediatailor: { trackingUrl }forPOST /v1/session/flows.
Ad tracking configuration
Introduced config.ad.type to control ad tracker selection.
- Exposed
AD_TRACKINGconstant with CSAI (flat value covering IMA / Brightcove IMA / Freewheel / generic) and SSAI sub-types (DAI,MT). - Required an explicit sub-type for SSAI — each platform needs its own SDK and cannot be auto-detected.
- Mapped
SSAI.MTto implymediatailor: true. - Added a fallback to CSAI auto-detection with a warning when
config.ad.typeis unset (backward compatible for v4.1.2 users). - Co-located
segmentPrefixandtrackingUrlunderconfig.ad. - Added
DaiAdsTrackerto static exports.
Logging improvements
- Exposed
VideojsTracker.Logas a static so UMD callers can set log level. - Added logging of the active ad segment detection mode at tracker startup.
- Added logging of the matched ad segment detection path on the first ad break (once per session).
- Added logging of which CSAI framework was auto-detected (BrightcoveIma / IMA / Freewheel / generic).
- Replaced
console.log/warn/errorwithnrvideo.Logacross MediaTailor files.
Bug fixes
- Fixed buffer end handling in tracker.
- Fixed
register-plugin.jssilently dropping the options object and not forwarding it to theTrackerJSconstructor.
Documentation
- Updated the README and SSAI docs for custom CDN support, clarified when
trackingUrlandadSegmentPrefixoverrides are needed, and cleaned upsessionIdreferences. - Corrected
adSegmentPrefixreferences toconfig.ad.segmentPrefixin the SSAI troubleshooting docs.
Upgrade from 4.1.x
- No breaking changes for CSAI users. If
config.ad.typeis unset, the tracker still auto-detects CSAI frameworks (with a one-time warning). - MediaTailor users must opt in explicitly. Replace any URL-pattern reliance with one of:
mediatailor: true(default AWS hostnames +/tm/path)mediatailor: { trackingUrl, adSegmentPrefix }(custom CDN / explicit session init)config.ad.type: AD_TRACKING.SSAI.MT
- If you previously passed
adSegmentPrefixat the top level, move it toconfig.ad.segmentPrefix.
Aspectos destacados
- Inclusión explícita para AWS MediaTailor, con compatibilidad total para dominios de CDN personalizados.
- Nueva API
config.ad.typepara elegir entre el seguimiento de anuncios CSAI y SSAI (DAI,MT) — no más suposiciones basadas en URL para SSAI. - Logging de extremo a extremo a través de
nrvideo.Log, con el modo de detección activa registrado en el inicio.
Característica
Soporte de CDN personalizada de MediaTailor
Se reemplazó la detección automática basada en URL con la inclusión explícita.
- Se habilitó el rastreador a través de
mediatailor: true(omediatailor: { trackingUrl, adSegmentPrefix }), que admite tanto nombres de host de AWS predeterminados como dominios de CDN personalizados. - Se agregó la constante
MT_DEFAULT_AD_SEGMENT_PATH(/tm/) para la ruta de segmento de anuncios de CDN recomendada por AWS; los segmentos de anuncios reescritos a un dominio de CDN personalizado bajo/tm/se detectan automáticamente. - Se actualizó
isMediaTailorSegment()para verificar el nombre de host de segmentos de AWS predeterminado, la ruta/tm/y unadSegmentPrefixopcional proporcionado por el cliente. - Se enlazó
adSegmentPrefixa través del análisis de manifiestos HLS (VHS) y DASH. - Se agregó la inicialización de sesión explícita a través de
mediatailor: { trackingUrl }para los flujos dePOST /v1/session/.
Configuración de seguimiento de anuncios
Se introdujo config.ad.type para controlar la selección del rastreador de anuncios.
- Se expuso la constante
AD_TRACKINGcon CSAI (valor plano que cubre IMA / Brightcove IMA / Freewheel / genérico) y los subtipos de SSAI (DAI,MT). - Se requirió un subtipo explícito para SSAI — cada plataforma necesita su propio SDK y no se puede detectar automáticamente.
- Se asignó
SSAI.MTpara implicarmediatailor: true. - Se agregó una alternativa a la detección automática de CSAI con una advertencia cuando
config.ad.typeno está configurado (compatible con versiones anteriores para v4.1.2 usuarios). - Se ubicaron conjuntamente
segmentPrefixytrackingUrlbajoconfig.ad. - Se agregó
DaiAdsTrackera las exportaciones estáticas.
Mejoras de logging
- Se expuso
VideojsTracker.Logcomo estático para que los llamadores UMD puedan establecer el nivel de logs. - Se agregó el logging del modo de detección de segmentos de anuncios activo al inicio del rastreador.
- Se agregó el logging de la ruta de detección de segmentos de anuncios coincidente en la primera pausa publicitaria (una vez por sesión).
- Se agregó el logging de qué framework de CSAI se detectó automáticamente (BrightcoveIma / IMA / Freewheel / genérico).
- Se reemplazó
console.log/warn/errorpornrvideo.Logen todos los archivos de MediaTailor.
Corrección de errores
- Se corrigió el manejo del final del búfer en el rastreador.
- Se corrigió que
register-plugin.jsdescartara silenciosamente el objeto de opciones y no lo reenviara al constructor deTrackerJS.
Documentación
- Se actualizaron el README y los documentos de SSAI para la compatibilidad con CDN personalizada, se aclaró cuándo se necesitan las anulaciones de
trackingUrlyadSegmentPrefix, y se limpiaron las referencias asessionId. - Se corrigieron las referencias de
adSegmentPrefixaconfig.ad.segmentPrefixen los documentos de resolución de problemas de SSAI.
Actualizar desde la 4.1.x
No hay cambios importantes para los usuarios de CSAI. Si
config.ad.typeno está configurado, el rastreador aún detecta automáticamente los frameworks de CSAI (con una advertencia única).Los usuarios de MediaTailor deben habilitarlo explícitamente. Reemplace cualquier dependencia de patrón de URL con uno de:
mediatailor: true(nombres de host predeterminados de AWS + ruta/tm/)mediatailor: { trackingUrl, adSegmentPrefix }(CDN personalizado / inicialización de sesión explícita)config.ad.type: AD_TRACKING.SSAI.MT
Si anteriormente pasó
adSegmentPrefixen el nivel superior, muévalo aconfig.ad.segmentPrefix.
Highlights
- Added MediaTailor SSAI tracker initialization on loadstart after source load detection.
- Added DAI stream manager support through the stream-manager event.
- Improved bitrate reporting with:
- Playback bitrate (
AVERAGE-BANDWIDTH/BANDWIDTH) - Manifest max bitrate
- Segment download bitrate
- Network throughput bitrate
- Playback bitrate (
Improvements
- Refined ad and content event handling to avoid duplicate or incorrect content events while ads are active for following events:
- Pause/Resume
- Seek Start/End
- Buffer Start
- Improved end-of-content handling for ad-enabled playback paths during IMA and Freewheel scenarios.
- Added safer fallback logic for tech wrappers (
Hls.js,Shaka,contrib-hls) when bitrate data is unavailable in VHS.
Technical notes
- Tracker metadata and playback context methods remain aligned with Video.js/Brightcove integrations:
- Retrieves the title, ID, and duration from
mediainfowhen available. - Retrieves source and rendition data from the active tech component when available.
- Retrieves the title, ID, and duration from
- Updated the Listener registration and unregistration to include ad and stream manager lifecycle events.
Aspectos destacados
Se agregó la inicialización del rastreador de SSAI de MediaTailor en loadstart después de la detección de carga del origen.
Se agregó soporte para el administrador de transmisiones DAI a través del evento stream-manager.
Reportes de tasa de bits mejorados con:
- Tasa de bits de reproducción (
AVERAGE-BANDWIDTH/BANDWIDTH) - Tasa de bits máx. del manifiesto
- Tasa de bits de descarga del segmento
- Tasa de bits de rendimiento de red
- Tasa de bits de reproducción (
Mejoras
Se refinó el manejo de eventos de anuncios y contenido para evitar eventos de contenido duplicados o incorrectos mientras los anuncios están activos para los siguientes eventos:
- Pausar/reanudar
- Inicio/fin de búsqueda
- Inicio de búfer
Manejo mejorado del fin del contenido para rutas de reproducción con anuncios habilitados durante escenarios de IMA y Freewheel.
Se agregó una lógica de respaldo más segura para los wrappers tecnológicos (
Hls.js,Shaka,contrib-hls) cuando los datos de la tasa de bits no están disponibles en VHS.
Notas técnicas
Los metadatos del rastreador y los métodos de contexto de reproducción se mantienen alineados con Video.js/Brightcove integraciones:
- Recupera el título, el ID y la duración de
mediainfocuando estén disponibles. - Recupera datos de origen y de representación del componente técnico activo cuando están disponibles.
- Recupera el título, el ID y la duración de
Se actualizó el registro y la anulación de registro del Listener para incluir los eventos del ciclo de vida del administrador de anuncios y transmisiones.
What's changed
Documentation
- README Overhaul: Restructured and expanded README with comprehensive installation guides, usage examples, best practices, configuration options, API reference, and support channels.
Improvements
- Attributes Validation: Updated validation logic for custom attributes to enforce correctness at the tracker level.
- Custom Attributes Limit: Added an enforced limit on the number of custom attributes that can be sent per event, preventing unexpected payload sizes.
Installation
$npm install @newrelic/video-html5@4.1.1Qué cambió
Documentación
- Revisión del README: README reestructurado y ampliado con guías de instalación completas, ejemplos de uso, mejores prácticas, opciones de configuración, referencia de la API y canales de soporte.
Mejoras
- Validación de atributos: lógica de validación actualizada para los atributos personalizados para garantizar la exactitud a nivel del rastreador.
- Límite de atributos personalizados: se agregó un límite obligatorio en la cantidad de atributos personalizados que se pueden enviar por evento, lo que evita tamaños de carga inesperados.
Instalacion
$npm install @newrelic/video-html5@4.1.1This 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 |
|---|---|---|
|
| Total variant bitrate (video + audio) as declared in the manifest (Indicated Bitrate). |
|
| Estimated network bandwidth measured by Shaka's ABR algorithm (Observed Bitrate). |
|
| 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:
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 |
|---|---|
| Time from content request to content start (ms). |
| Maximum |
| Weighted average bitrate across the session. |
|
|
|
|
| Total time spent rebuffering (ms). |
| Rebuffering time as a percentage of total playtime. |
| Total content playtime (ms). |
| 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:
$npm install @newrelic/video-shaka@4.0.3To 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.