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
O que mudou
- chore: lançamento atualizado por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/39
- Correção/fluxo de trabalho por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/40
- chore: adicionar detecção inteligente de lançamento e melhorar os gatilhos de fluxo de trabalho por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/41
- fix: correção de fim de buffer por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/44
- Release/25 may2026 por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/45
- chore: adicionar fluxo de trabalho de PR de documentos de notas de lançamento por @ametku em https://github.com/newrelic/video-html5-js/pull/46
- chore: fluxo de trabalho de lançamento atualizado por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/49
- fix: abordar os comentários do revisor de documentos sobre o formato do PR de notas de lançamento por @mlychndnnr em https://github.com/newrelic/video-html5-js/pull/52
- chore: acionar release-notes-docs-pr após a criação do lançamento por @ametku em https://github.com/newrelic/video-html5-js/pull/56
- chore(release): v4.1.2 por @github-actions[bot] em https://github.com/newrelic/video-html5-js/pull/50
Novos Colaboradores
- @github-actions[bot] fez sua primeira contribuição em 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.
Destaques
- Opt-in explícito para o AWS MediaTailor, com suporte total a domínios de CDN personalizados.
- Nova API
config.ad.typepara escolher entre o rastreamento de anúncios CSAI e SSAI (DAI,MT) — sem mais adivinhações baseadas em URL para SSAI. - Logging de ponta a ponta por meio de
nrvideo.Log, com o modo de detecção ativa registrado na inicialização.
Recurso
Suporte a CDN personalizada do MediaTailor
Substituída a detecção automática baseada em URL por opt-in explícito.
- Habilitado o rastreador via
mediatailor: true(oumediatailor: { trackingUrl, adSegmentPrefix }), com suporte tanto a nomes de host padrão da AWS quanto a domínios de CDN personalizados. - Adicionada a constante
MT_DEFAULT_AD_SEGMENT_PATH(/tm/) para o caminho de segmento de anúncio de CDN recomendado pela AWS; os segmentos de anúncio reescritos para um domínio de CDN personalizado em/tm/são detectados automaticamente. - Atualizado
isMediaTailorSegment()para verificar o nome do host de segmentos padrão da AWS, o caminho/tm/e umadSegmentPrefixopcional fornecido pelo cliente. adSegmentPrefixencadeado por meio da análise de manifesto HLS (VHS) e DASH.- Adicionada inicialização explícita de sessão via
mediatailor: { trackingUrl }para fluxosPOST /v1/session/.
Configuração de rastreamento de anúncios
Introduzido config.ad.type para controlar a seleção do rastreador de anúncios.
- Exposta a constante
AD_TRACKINGcom CSAI (valor fixo cobrindo IMA / Brightcove IMA / Freewheel / genérico) e subtipos de SSAI (DAI,MT). - Exigido um subtipo explícito para SSAI — cada plataforma precisa de seu próprio SDK e não pode ser detectada automaticamente.
- Mapeado
SSAI.MTpara implicarmediatailor: true. - Adicionado um fallback para a detecção automática de CSAI com um aviso quando
config.ad.typenão está definido (compatível com versões anteriores para a v4.1.2 usuário). - Co-localizou
segmentPrefixetrackingUrlemconfig.ad. - Adicionado
DaiAdsTrackeràs exportações estáticas.
Melhorias de logging
- Expôs
VideojsTracker.Logcomo estático para que os chamadores UMD possam definir o nível de log. - Adicionado logging do modo de detecção de segmento de anúncio ativo na inicialização do rastreador.
- Adicionado logging do caminho de detecção de segmento de anúncio correspondente no primeiro intervalo comercial (uma vez por sessão).
- Adicionado logging de qual framework de CSAI foi detectado automaticamente (BrightcoveIma / IMA / Freewheel / genérico).
- Substituído
console.log/warn/errorpornrvideo.Logem todos os arquivos do MediaTailor.
Correções de bugs
- Corrigido o tratamento de fim de buffer no rastreador.
- Corrigido
register-plugin.jsdescartando silenciosamente o objeto de opções e não o encaminhando para o construtorTrackerJS.
Documentação
- Atualizado o README e os documentos de SSAI para suporte a CDN personalizada, esclarecido quando as substituições
trackingUrleadSegmentPrefixsão necessárias e limpas as referências asessionId. - Corrigidas as referências de
adSegmentPrefixparaconfig.ad.segmentPrefixnos documentos de resolução de problemas de SSAI.
Atualização a partir da 4.1.x
Sem alterações incompatíveis para usuários de CSAI. Se
config.ad.typenão estiver definido, o rastreador ainda detectará automaticamente os frameworks de CSAI (com um aviso único).Os usuários do MediaTailor devem optar explicitamente. Substitua qualquer dependência de padrão de URL por um dos seguintes:
mediatailor: true(nomes de host padrão da AWS + caminho/tm/)mediatailor: { trackingUrl, adSegmentPrefix }(CDN personalizada/inicialização explícita de sessão)config.ad.type: AD_TRACKING.SSAI.MT
Se você passou
adSegmentPrefixanteriormente no nível superior, mova-o paraconfig.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.
Destaques
Adicionada a inicialização do rastreador SSAI do MediaTailor no loadstart após a detecção do carregamento da fonte.
Adicionado suporte ao gerenciador de stream DAI através do evento stream-manager.
Relatórios de bitrate aprimorados com:
- Taxa de bits de reprodução (
AVERAGE-BANDWIDTH/BANDWIDTH) - Bitrate máximo do manifesto
- Bitrate de download do segmento
- Taxa de bits das taxas de transferência de rede
- Taxa de bits de reprodução (
Melhorias
Tratamento refinado de eventos de anúncio e conteúdo para evitar eventos de conteúdo duplicados ou incorretos enquanto os anúncios estão ativos para os seguintes eventos:
- Pausar/Retomar
- Início/Fim da Busca
- Início do buffer
Tratamento de fim de conteúdo aprimorado para caminhos de reprodução habilitados para anúncios durante cenários de IMA e Freewheel.
Adicionada lógica de fallback mais segura para wrappers de tecnologia (
Hls.js,Shaka,contrib-hls) quando os dados de bitrate estão indisponíveis no VHS.
Notas técnicas
Os metadados do rastreador e os métodos de contexto de reprodução permanecem alinhados com Video.js/Brightcove integrações:
- Recupera o título, o ID e a duração de
mediainfoquando disponível. - Recupera dados de origem e de renderização do componente técnico ativo quando disponíveis.
- Recupera o título, o ID e a duração de
Atualizado o registro e o cancelamento de registro do Listener para incluir eventos de ciclo de vida do gerenciador de anúncios e de stream.
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.1O que mudou
Documentação
- Reformulação do README: README reestruturado e expandido com guias de instalação abrangentes, exemplos de uso, práticas recomendadas, opções de configuração, referência da API e canais de suporte.
Melhorias
- Validação de atributos: atualizada a lógica de validação para atributos personalizados para impor a correção no nível do rastreador.
- Limite de atributos personalizados: adicionado um limite imposto ao número de atributos personalizados que podem ser enviados por evento, evitando tamanhos de carga inesperados.
instalação
$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.