Spaces:
Running
Running
Add visible status display in VTV player for debugging (vtv-status element)
Browse files- 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)=>{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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)=>{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
| 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);}
|