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
변경된 사항
- chore: 릴리스 업데이트 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/39에서 작성했습니다.
- Fix/워크플로우 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/40에서 작성했습니다.
- chore: 스마트 릴리스 감지 추가 및 워크플로우 트리거 개선 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/41에서 작성했습니다.
- fix: 버퍼 종료 수정 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/44에서 작성했습니다.
- Release/25 may2026 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/45에서 작성했습니다.
- chore: 릴리스 노트 문서 PR 워크플로우 추가 - @ametku 님이 https://github.com/newrelic/video-html5-js/pull/46에서 작성했습니다.
- chore: 릴리스 워크플로우 업데이트 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/49에서 작성했습니다.
- fix: 릴리스 노트 PR 형식에 대한 문서 리뷰어의 의견 반영 - @mlychndnnr 님이 https://github.com/newrelic/video-html5-js/pull/52에서 작성했습니다.
- chore: 릴리스 생성 후 release-notes-docs-pr 트리거 - @ametku 님이 https://github.com/newrelic/video-html5-js/pull/56에서 작성했습니다.
- chore(release): v4.1.2 @github-actions[bot] 님이 https://github.com/newrelic/video-html5-js/pull/50에서 작성했습니다.
새로운 기여자
- @github-actions[bot] 님이 https://github.com/newrelic/video-html5-js/pull/50에서 첫 기여를 했습니다.
전체 변경 로그: 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.
하이라이트
- AWS MediaTailor에 대한 명시적 옵트인, 사용자 지정 CDN 도메인에 대한 완벽한 지원.
- CSAI 와 SSAI (
DAI,MT) 광고 추적 중 하나를 선택할 수 있는 새로운config.ad.typeAPI ― 더 이상 SSAI에 대해 URL 기반으로 추측할 필요가 없습니다. nrvideo.Log을(를) 통한 엔드투엔드 로깅, 시작 시 활성 감지 모드가 로그에 기록됩니다.
특징
MediaTailor 사용자 지정 CDN 지원
URL 기반 자동 감지를 명시적 옵트인으로 대체했습니다.
- 기본 AWS 호스트명과 사용자 지정 CDN 도메인을 모두 지원하여
mediatailor: true(또는mediatailor: { trackingUrl, adSegmentPrefix })을(를) 통해 트래커를 활성화했습니다. - AWS 권장 CDN 광고 세그먼트 경로에 대한
MT_DEFAULT_AD_SEGMENT_PATH(/tm/) 상수를 추가했습니다,/tm/아래의 사용자 지정 CDN 도메인으로 다시 작성된 광고 세그먼트가 자동으로 감지됩니다. - 기본 AWS 세그먼트 호스트명,
/tm/경로 및 선택적 고객 제공adSegmentPrefix을(를) 확인하도록isMediaTailorSegment()을(를) 업데이트했습니다. - HLS(VHS) 및 DASH 매니페스트 구문 분석을 통해
adSegmentPrefix을(를) 스레딩했습니다. POST /v1/session/흐름에 대해mediatailor: { trackingUrl }을(를) 통한 명시적 세션 초기화를 추가했습니다.
광고 추적 설정
광고 트래커 선택을 제어하기 위해 config.ad.type 을(를) 도입했습니다.
- CSAI (IMA/Brightcove IMA/Freewheel/일반을 포괄하는 단일 값) 및 SSAI 하위 유형(
DAI,MT)과 함께AD_TRACKING상수를 노출했습니다. - SSAI에 대한 명시적 하위 유형이 필요했습니다 ― 각 플랫폼에는 자체 SDK가 필요하며 자동 감지할 수 없습니다.
mediatailor: true을(를) 의미하도록SSAI.MT을(를) 매핑했습니다.config.ad.type이(가) 설정되지 않은 경우 경고와 함께 CSAI 자동 감지에 대한 대체 수단을 추가했습니다(v4.1.2와 이전 버전 호환 가능 사용자에 대해 하위 호환됨).config.ad아래에segmentPrefix및trackingUrl을(를) 함께 배치했습니다.- 정적 내보내기에
DaiAdsTracker을(를) 추가했습니다.
로깅 개선 사항
- UMD 호출자가 로그 레벨을 설정할 수 있도록
VideojsTracker.Log을(를) 정적으로 노출했습니다. - 트래커 시작 시 활성 광고 세그먼트 감지 모드의 로깅을 추가했습니다.
- 첫 번째 광고 시간(세션당 한 번)에 일치하는 광고 세그먼트 감지 경로의 로깅을 추가했습니다.
- 자동 감지된 CSAI 프레임워크(BrightcoveIma / IMA / Freewheel / generic)의 로깅을 추가했습니다.
- MediaTailor 파일 전체에서
console.log/warn/error을(를)nrvideo.Log(으)로 교체했습니다.
버그 수정
- 트래커의 버퍼 끝 처리를 수정했습니다.
register-plugin.js이(가) options 객체를 조용히 삭제하고TrackerJS생성자로 전달하지 않는 문제를 수정했습니다.
선적 서류 비치
- 사용자 지정 CDN 지원을 위해 README 및 SSAI 문서를 업데이트하고,
trackingUrl및adSegmentPrefix재정의가 필요한 시기를 명확히 했으며,sessionId참조를 정리했습니다. - SSAI 문제 진단, 해결 문서에서
adSegmentPrefix참조를config.ad.segmentPrefix(으)로 수정했습니다.
4.1.x에서 업그레이드
CSAI 사용자를 위한 브레이킹 체인지는 없습니다.
config.ad.type이(가) 설정되지 않은 경우, 트래커는 여전히 CSAI 프레임워크를 자동 감지합니다(일회성 경고 포함).MediaTailor 사용자는 명시적으로 옵트인해야 합니다. URL 패턴 의존성을 다음 중 하나로 교체하십시오:
mediatailor: true(기본 AWS 호스트명+/tm/경로)mediatailor: { trackingUrl, adSegmentPrefix }(사용자 지정 CDN/명시적 세션 초기화)config.ad.type: AD_TRACKING.SSAI.MT
이전에 최상위 레벨에서
adSegmentPrefix을(를) 전달한 경우config.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.
하이라이트
소스 로드 감지 후 loadstart 시 MediaTailor SSAI 트래커 초기화를 추가했습니다.
stream-manager 이벤트를 통해 DAI 스트림 관리자 지원을 추가했습니다.
다음을 통한 개선된 비트레이트 보고:
- 재생 비트레이트(
AVERAGE-BANDWIDTH/BANDWIDTH) - 매니페스트 최대 비트레이트
- 세그먼트 다운로드 비트레이트
- 네트워크 처리량 비트레이트
- 재생 비트레이트(
개량
광고가 활성화되어 있는 동안 중복되거나 잘못된 콘텐츠 이벤트를 방지하기 위해 다음 이벤트에 대한 광고 및 콘텐츠 이벤트 처리를 개선했습니다:
- 일시 정지/재개
- 탐색 시작/종료
- 버퍼 시작
IMA 및 Freewheel 시나리오에서 광고가 활성화된 재생 경로에 대한 콘텐츠 종료 처리가 개선되었습니다.
VHS에서 비트레이트 데이터를 사용할 수 없는 경우 기술 래퍼(
Hls.js,Shaka,contrib-hls)에 대한 더 안전한 폴백 로직을 추가했습니다.
기술 참고 사항
트래커 메타데이터 및 재생 컨텍스트 메서드는 Video.js/Brightcove와 일치하게 유지됩니다 통합:
- 사용 가능한 경우
mediainfo에서 제목, ID 및 기간을 가져옵니다. - 사용 가능한 경우 활성 기술 컴포넌트에서 소스 및 렌디션 데이터를 가져옵니다.
- 사용 가능한 경우
광고 및 스트림 관리자 수명 주기 이벤트를 포함하도록 리스너 등록 및 등록 해제를 업데이트했습니다.
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.1변경된 사항
선적 서류 비치
- README 개편: 포괄적인 설치 가이드, 사용 예시, 모범 사례, 설정 옵션, API 참조 및 지원 채널을 포함하여 README를 재구성하고 확장했습니다.
개량
- 속성 유효성 검사: 트래커 수준에서 정확성을 적용하도록 커스텀 속성에 대한 유효성 검사 로직을 업데이트했습니다.
- 커스텀 속성 제한: 이벤트당 전송할 수 있는 커스텀 속성 수에 강제 제한을 추가하여 예기치 않은 페이로드 크기를 방지했습니다.
설치
$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.