bep40 commited on
Commit
efd0795
·
verified ·
1 Parent(s): a7b1259

v12: Fix DVR — use hls.liveSyncPosition for initial seek

Browse files

Refinement: Use hls.liveSyncPosition (calculated from playlist) instead of video.duration for initial live edge seek. More reliable since video.duration depends on buffer state.

Files changed (1) hide show
  1. static/yt_live.js +10 -3
static/yt_live.js CHANGED
@@ -860,9 +860,16 @@
860
  // v12: After manifest loaded, seek to live edge first, then play
861
  hls.on(Hls.Events.MANIFEST_PARSED,(ev,data)=>{
862
  loadEl.style.display='none';video.style.display='block';
863
- // Seek to live edge manually since we disabled auto-sync
864
- const dur = video.duration;
865
- if(dur && isFinite(dur)){ video.currentTime = dur; }
 
 
 
 
 
 
 
866
  video.play().catch(()=>{});
867
  });
868
 
 
860
  // v12: After manifest loaded, seek to live edge first, then play
861
  hls.on(Hls.Events.MANIFEST_PARSED,(ev,data)=>{
862
  loadEl.style.display='none';video.style.display='block';
863
+ // Seek to live edge using hls.liveSyncPosition (calculated from playlist)
864
+ // Works even with liveSyncDurationCount:0 since it's just a position reference
865
+ const livePos = hls.liveSyncPosition;
866
+ if(livePos && isFinite(livePos) && livePos > 0){
867
+ video.currentTime = livePos;
868
+ } else {
869
+ // Fallback: use video.duration
870
+ const dur = video.duration;
871
+ if(dur && isFinite(dur)){ video.currentTime = dur; }
872
+ }
873
  video.play().catch(()=>{});
874
  });
875