You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现无感知网页重载?视频流页面自动保活技术问询

两种解决视频流自动停止的Greasemonkey方案

我刚好碰到过类似的视频流超时问题,给你两个实用的脚本方案,按需选择:


方案一:每5分钟无感知重载页面

这个脚本会定时刷新当前页面,而且可以做到几乎无感知(前提是视频流页面刷新后能自动恢复播放,很多视频站都支持)。

// ==UserScript==
// @name         Auto-Reload Video Stream
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  每5分钟自动重载页面,解决视频流停止问题
// @author       You
// @match        https://your-video-stream-url.com/*  // 替换成你的视频流页面URL
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // 5分钟 = 300000毫秒
    const reloadInterval = 300000;
    // 定时重载页面
    setInterval(() => {
        // 可选:如果页面有播放状态,可以先判断是否在播放再重载,避免不必要刷新
        // const video = document.querySelector('video');
        // if (video && !video.paused) {
            location.reload();
        // }
    }, reloadInterval);
})();

注意事项:

  • 把@match里的URL替换成你实际的视频流页面地址,确保脚本只在目标页面运行
  • 如果视频站刷新后需要手动点击播放,你可以在脚本里加一段自动触发播放的代码,比如找到video元素后调用video.play()

方案二:后台发送保活请求(推荐)

这个方案更友好,不需要重载页面,只是定期在后台向服务器发送请求,保持会话活跃,完全不影响当前页面的焦点和播放状态。

// ==UserScript==
// @name         Video Stream Keep-Alive
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  后台定时发送保活请求,避免视频流停止
// @author       You
// @match        https://your-video-stream-url.com/*  // 替换成你的视频流页面URL
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';
    // 每5分钟发送一次请求
    const keepAliveInterval = 300000;
    // 保活请求的URL,一般用当前页面的URL或者网站的会话保持接口
    const keepAliveUrl = window.location.href;

    setInterval(() => {
        // 使用GM_xmlhttpRequest在后台发送请求,不会影响当前页面
        GM_xmlhttpRequest({
            method: 'GET',
            url: keepAliveUrl,
            credentials: 'include', // 携带会话Cookie,确保服务器识别你的会话
            onload: function(response) {
                console.log('保活请求发送成功:', response.status);
            },
            onerror: function(error) {
                console.error('保活请求失败:', error);
            }
        });
    }, keepAliveInterval);
})();

注意事项:

  • 同样要替换@match的URL为目标页面地址
  • 如果网站有特定的保活接口,可以把keepAliveUrl改成那个接口的地址
  • 有些网站会检查请求头,你可能需要添加headers字段,比如headers: { 'X-Requested-With': 'XMLHttpRequest' }来模拟AJAX请求,避免被拦截

这两个方案都能解决你的问题,个人更推荐方案二,因为完全不会干扰当前的播放体验~

内容的提问来源于stack exchange,提问作者petert555

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:06:38