bep40 commited on
Commit
a035976
·
verified ·
1 Parent(s): e426e57

Add visible status display in VTV player for debugging (vtv-status element)

Browse files
Files changed (1) hide show
  1. static/yt_live.js +24 -3
static/yt_live.js CHANGED
@@ -821,12 +821,31 @@
821
  hls.on(Hls.Events.MEDIA_ATTACHED,()=>console.log('[VTV] MEDIA_ATTACHED'));
822
  hls.on(Hls.Events.MANIFEST_LOADING,()=>console.log('[VTV] MANIFEST_LOADING',src));
823
  hls.on(Hls.Events.MANIFEST_LOADED,()=>console.log('[VTV] MANIFEST_LOADED'));
824
- hls.on(Hls.Events.MANIFEST_PARSED,(ev,data)=>{console.log('[VTV] MANIFEST_PARSED levels:',data.levels.length,'video:',!!data.video,'audio:',!!data.audio,'first level:',data.levels[0]&&data.levels[0].width+'x'+data.levels[0].height);loadEl.style.display='none';video.style.display='block';setTimeout(()=>{video.play().then(()=>console.log('[VTV] play OK')).catch(e=>console.log('[VTV] play rejected:',e));},100);});
 
 
 
 
 
 
 
 
 
 
 
 
 
825
  hls.on(Hls.Events.LEVEL_LOADING,(ev,l)=>console.log('[VTV] LEVEL_LOADING',l));
826
  hls.on(Hls.Events.LEVEL_LOADED,(ev,l)=>console.log('[VTV] LEVEL_LOADED',l));
827
  hls.on(Hls.Events.FRAG_LOADING,(ev,f)=>console.log('[VTV] FRAG_LOADING',f&&f.url&&f.url.substring(0,80)));
828
  hls.on(Hls.Events.FRAG_LOADED,(ev,f)=>console.log('[VTV] FRAG_LOADED size:',f&&f.frag&&f.frag.data&&f.frag.data.length));
829
- hls.on(Hls.Events.FRAG_BUFFERED,(ev,f)=>{try{console.log('[VTV] FRAG_BUFFERED',f&&f.frag&&f.frag.url&&f.frag.url.substring(0,60));}catch(e){}});
 
 
 
 
 
 
830
  hls.on(Hls.Events.FRAG_PARSING_INIT_SEGMENT,()=>console.log('[VTV] FRAG_PARSING_INIT_SEGMENT'));
831
  hls.on(Hls.Events.FRAG_PARSING_DATA,()=>console.log('[VTV] FRAG_PARSING_DATA'));
832
  hls.on(Hls.Events.FRAG_PARSED,()=>console.log('[VTV] FRAG_PARSED'));
@@ -838,7 +857,9 @@
838
  hls.on(Hls.Events.LEVEL_SWITCHING,(ev,d)=>console.log('[VTV] LEVEL_SWITCHING',d));
839
  hls.on(Hls.Events.LEVEL_SWITCHED,(ev,d)=>console.log('[VTV] LEVEL_SWITCHED',d));
840
  let rec=0; hls.on(Hls.Events.ERROR,(ev,data)=>{
841
- console.log('[VTV] ERROR type:',data.type,'details:',data.details,'fatal:',data.fatal,'reason:',data.reason,'url:',data.url&&data.url.substring(0,80),'response:',data.response,'context:',data.context);
 
 
842
  if(data.fatal){
843
  if(data.type===Hls.ErrorTypes.NETWORK_ERROR){
844
  rec++;if(rec<=3){console.log('[VTV] retry',rec);setTimeout(()=>hls.startLoad(),2000);}
 
821
  hls.on(Hls.Events.MEDIA_ATTACHED,()=>console.log('[VTV] MEDIA_ATTACHED'));
822
  hls.on(Hls.Events.MANIFEST_LOADING,()=>console.log('[VTV] MANIFEST_LOADING',src));
823
  hls.on(Hls.Events.MANIFEST_LOADED,()=>console.log('[VTV] MANIFEST_LOADED'));
824
+ hls.on(Hls.Events.MANIFEST_PARSED,(ev,data)=>{
825
+ const st=document.getElementById('vtv-status');
826
+ if(st) st.textContent='✅ Manifest OK | '+data.levels.length+' levels | '+(data.levels[0]?data.levels[0].width+'x'+data.levels[0].height:'?');
827
+ console.log('[VTV] MANIFEST_PARSED levels:',data.levels.length);
828
+ loadEl.style.display='none';video.style.display='block';setTimeout(()=>{
829
+ video.play().then(()=>{
830
+ if(st) st.textContent+=' | ▶ Playing';
831
+ console.log('[VTV] play OK');
832
+ }).catch(e=>{
833
+ if(st) st.textContent+=' | ⚠️ Play blocked: '+e;
834
+ console.log('[VTV] play:',e);
835
+ });
836
+ },100);
837
+ });
838
  hls.on(Hls.Events.LEVEL_LOADING,(ev,l)=>console.log('[VTV] LEVEL_LOADING',l));
839
  hls.on(Hls.Events.LEVEL_LOADED,(ev,l)=>console.log('[VTV] LEVEL_LOADED',l));
840
  hls.on(Hls.Events.FRAG_LOADING,(ev,f)=>console.log('[VTV] FRAG_LOADING',f&&f.url&&f.url.substring(0,80)));
841
  hls.on(Hls.Events.FRAG_LOADED,(ev,f)=>console.log('[VTV] FRAG_LOADED size:',f&&f.frag&&f.frag.data&&f.frag.data.length));
842
+ hls.on(Hls.Events.FRAG_BUFFERED,(ev,f)=>{
843
+ try{
844
+ const _n=f&&f.frag&&f.frag.sn;
845
+ const _st2=document.getElementById('vtv-status');
846
+ if(_st2&&_n) _st2.textContent='📦 Buffered frag #'+_n;
847
+ console.log('[VTV] FRAG_BUFFERED',f&&f.frag&&f.frag.url&&f.frag.url.substring(0,60));
848
+ }catch(e){}});
849
  hls.on(Hls.Events.FRAG_PARSING_INIT_SEGMENT,()=>console.log('[VTV] FRAG_PARSING_INIT_SEGMENT'));
850
  hls.on(Hls.Events.FRAG_PARSING_DATA,()=>console.log('[VTV] FRAG_PARSING_DATA'));
851
  hls.on(Hls.Events.FRAG_PARSED,()=>console.log('[VTV] FRAG_PARSED'));
 
857
  hls.on(Hls.Events.LEVEL_SWITCHING,(ev,d)=>console.log('[VTV] LEVEL_SWITCHING',d));
858
  hls.on(Hls.Events.LEVEL_SWITCHED,(ev,d)=>console.log('[VTV] LEVEL_SWITCHED',d));
859
  let rec=0; hls.on(Hls.Events.ERROR,(ev,data)=>{
860
+ const _st=document.getElementById('vtv-status');
861
+ if(_st) _st.textContent='❌ '+data.type+' | '+data.details+(data.fatal?' [FATAL]':'');
862
+ console.log('[VTV] ERROR type:',data.type,'details:',data.details,'fatal:',data.fatal,'reason:',data.reason,'url:',data.url&&data.url.substring(0,80));
863
  if(data.fatal){
864
  if(data.type===Hls.ErrorTypes.NETWORK_ERROR){
865
  rec++;if(rec<=3){console.log('[VTV] retry',rec);setTimeout(()=>hls.startLoad(),2000);}