Closed verygoodlee closed 1 year ago
这个建议还是手动刷新一下页面,等几十分钟才点击播放的情况还是比较少的 😂
这个建议还是手动刷新一下页面,等几十分钟才点击播放的情况还是比较少的 😂
我想到个解决方案,改动比较小,用定时器
async function getBilibiliPlayUrl(avid, cid) {
......
......
if (currentConfig.subtitlePrefer != "off") {
getBilibiliVideoSubtitle(avid, cid);
if(!!handler.media.subtitleUrl){// 如果有字幕,定时器每隔5分钟刷新一次,防止链接过期
setInterval(function(){
console.log('reload bilibili subtitle');
getBilibiliVideoSubtitle(avid, cid);
console.log(handler.media.subtitleUrl);
}, 1000*60*5);
}
}
}
看了一下控制台打印的字幕链接,两次的auth_key
确实是不同的,\
你评估一下,看看对其他地方有没有没影响,\
时间可以适当调长点,10分钟感觉应该没啥问题,没严谨测过链接的超时时间是多少
加是不难加,等我有空吧,可能要过几天 😂
打开播放页,闲置一段时间(具体不清楚,可能二三十分钟左右)再点击播放,字幕加载失败, 找到字幕链接手动在浏览器访问,403 Forbidden
https://aisubtitle.hdslb.com/bfs/subtitle/57a0cf4d9fe8c9494e30532f75aeb7b353c0c507.json?auth_key=1696906421-c985095629d84709933c4a46512ad6f9-0-1f385237014cf5144feb66312c3fbaab&lan=zh-CN
重新刷新页面就好了,再次找到字幕链接打开能访问,对比两个链接只有
auth_key
这个参数不同, 猜测可能是为了防止盗链,auth_key
做了时间限制,超过一段时间就失效,能否做到每次播放时都刷新
auth_key
,这样应该能解决这个问题