@@ -33,6 +33,7 @@ function getDeviceInfo() {
3333document . addEventListener ( "DOMContentLoaded" , ( ) => {
3434 const videoElement = document . getElementById ( "videoPlayer" ) ;
3535 const inputElement = document . getElementById ( "videoUrlInput" ) ;
36+ const contentIdInputField = document . getElementById ( "contentIdInputField" ) ;
3637 const loadBtn = document . getElementById ( "loadButton" ) ;
3738
3839 const eventsinkUrl =
@@ -47,23 +48,7 @@ document.addEventListener("DOMContentLoaded", () => {
4748 return url ;
4849 }
4950
50- async function loadVideo ( urlRaw ) {
51- const url = cleanUrl ( urlRaw ) ;
52- if ( ! url ) return ;
53-
54- await analytics . init ( {
55- sessionId : `demo-page-${ Date . now ( ) } ` ,
56- heartbeatInterval : 10000 ,
57- } ) ;
58- analytics . load ( videoElement ) ;
59- if ( Hls . isSupported ( ) && url . endsWith ( ".m3u8" ) ) {
60- const hls = new Hls ( ) ;
61- hls . loadSource ( url ) ;
62- hls . attachMedia ( videoElement ) ;
63- } else {
64- videoElement . src = url ;
65- }
66-
51+ function generateContentId ( url ) {
6752 const parsedUrl = new URL ( url ) ;
6853 let contentId ;
6954 if (
@@ -86,6 +71,30 @@ document.addEventListener("DOMContentLoaded", () => {
8671 contentId = contentId . substring ( 0 , fileExtIndex ) ;
8772 }
8873 }
74+ return contentId ;
75+ }
76+
77+ async function loadVideo ( urlRaw ) {
78+ const url = cleanUrl ( urlRaw ) ;
79+ if ( ! url ) return ;
80+
81+ await analytics . init ( {
82+ sessionId : `demo-page-${ Date . now ( ) } ` ,
83+ heartbeatInterval : 10000 ,
84+ } ) ;
85+ analytics . load ( videoElement ) ;
86+ if ( Hls . isSupported ( ) && url . endsWith ( ".m3u8" ) ) {
87+ const hls = new Hls ( ) ;
88+ hls . loadSource ( url ) ;
89+ hls . attachMedia ( videoElement ) ;
90+ } else {
91+ videoElement . src = url ;
92+ }
93+
94+ // Use input field contentId if available, otherwise generate from URL
95+ const userContentId = contentIdInputField . value . trim ( ) ;
96+ const contentId = userContentId || generateContentId ( url ) ;
97+
8998 const { deviceType, deviceModel } = getDeviceInfo ( ) ;
9099 analytics . reportMetadata ( {
91100 live : false ,
0 commit comments