Greasy Fork is available in English.

Better Youtube Shorts

Provide more control functions for YouTube Shorts, including automatic/manual redirection to corresponding video pages, volume control, progress bar, auto scrolling, shortcut keys, and more.

< Feedback on Better Youtube Shorts

Question/comment

§
Posted: 05.03.2024
Edited: 05.03.2024

发现一个问题,是youtube导致的,它的video元素的duration是会变的,未必和实际影片长度一致,经过测试发现当video播放一遍之后第二遍再次播放时duration就会增大(比实际的长度大); 而且它的currentTime也不准,起始时间未必是0, 经过测试发现当通过鼠标滚动播放多个shorts后,video的元素的currentTime就会从一个大于0的时间点开始
测试代码
a=setInterval(()=>{
let dr=document.querySelector('video').duration
let ct=document.querySelector('video').currentTime
let cnt=document.querySelectorAll('video').length
console.log(cnt,`dr:`,dr,'ct:',ct)
},100)

这就导致这个油猴脚本的进度条有问题,1是进度条起始长度未必是0, 2是视频播放到结尾时,进度条没有达到100%(因为duration比实际的大)

Meriel VarenAuthor
§
Posted: 06.03.2024

发现一个问题,是youtube导致的,它的video元素的duration是会变的,未必和实际影片长度一致,经过测试发现当video播放一遍之后第二遍再次播放时duration就会增大(比实际的长度大); 而且它的currentTime也不准,起始时间未必是0, 经过测试发现当通过鼠标滚动播放多个shorts后,video的元素的currentTime就会从一个大于0的时间点开始
测试代码
a=setInterval(()=>{
let dr=document.querySelector('video').duration
let ct=document.querySelector('video').currentTime
let cnt=document.querySelectorAll('video').length
console.log(cnt,`dr:`,dr,'ct:',ct)
},100)

这就导致这个油猴脚本的进度条有问题,1是进度条起始长度未必是0, 2是视频播放到结尾时,进度条没有达到100%(因为duration比实际的大)

额有没有可能setInterval100,用console观察的时候currentTime已经不是0了。。。然后duration多次播放后变化的情况我用上面的测试代码也没测出来
(() => {
const func = () => {
let dr=document.querySelector('video').duration
let ct=document.querySelector('video').currentTime
let cnt=document.querySelectorAll('video').length
console.log(cnt,`dr:`,dr,'ct:',ct)
requestAnimationFrame(func)
}
requestAnimationFrame(func)
})
我用raf运行出来第一帧currentTime就是0

Post reply

Sign in to post a reply.