Greasy Fork

Greasy Fork is available in English.

视频自动网页全屏|倍速播放

支持所有H5视频的增强脚本,通用网页全屏|倍速调节;B站(含直播) / 腾讯视频 / 优酷 / 爱奇艺 / 芒果TV / AcFun 默认自动网页全屏,其他网站可手动开启;自动网页全屏 + 记忆倍速 + 下集切换,减少鼠标操作,让追剧更省心、更沉浸;支持视频旋转、截图、镜像翻转、缩放与移动、记忆播放进度等功能

当前为 2026-03-30 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
Feny
评分
0 0 0
版本
3.10.2
创建于
2024-12-05
更新于
2026-03-30
大小
87.0 KB
许可证
GPL-3.0-only
适用于

设置为适用于所有网站

参考设置:https://pic1.imgdb.cn/item/696662c00e6bc0c5db9822b5.png

脚本菜单

  1. 此站启/禁用自动网页全屏(非 @match 网站时显示)
  2. 删除此站剧集选择器 (有手动适配时显示)
  3. 此站脱离式全屏阈值
  4. 快捷键说明
  5. 更多设置

快捷键大全

快捷键 说明 快捷键 说明
Enter 全屏 P 网页全屏
N 切换下集 R 旋转 90°
M 静音切换 D 弹幕显/隐
K / L 上下帧 Shift + R 水平镜像
Ctrl + Z 复位缩移 Shift + A 启/禁自动下集
Ctrl + Alt + S 截图 Alt + / 缩放
A / S 或 / ±倍速 Alt + ◀️🔼 移动
Ctrl 1️⃣~5️⃣ 预设倍速 1️⃣~9️⃣ 1️⃣ - 9️⃣ 倍速
数字 0️⃣ 快进 30 秒 ◀️▶️ 快退/进 (默禁)
空格 播放/暂停 (默禁)

网页全屏 | 倍速

理论上支持所有含 HTML5 <video> 的视频网页,覆盖绝大多数视频播放场景。

支持微博、推特等多视频平台 —— 哪个视频处于播放状态,即可直接对其进行网页全屏、播放倍速调节等操作。

自动网页全屏

脚本默认只对 @match 配置的网站自动网页全屏,若需对其他的网站启用自动网页全屏,按以下配置即可快速生效。

1. 对所有网站生效

将脚本中的:

// @note        *://*/*

修改为:

// @match        *://*/*

推荐在插件的脚本设置面板中完成用户匹配规则的配置;后续脚本更新时,即可避免重复修改。

参考设置:https://pic1.imgdb.cn/item/696662c00e6bc0c5db9822b5.png

2. 对特定网站生效(以咕咕番为例)

使用 @include 指定单个网站:

// @include      *://www.gugu3.com/*

3. 对嵌套框架页生效(如 E 站弹幕网)

若视频在 iframe 框架中播放,需同时匹配主页面和框架页的域名:

// @include      *://www.ezdmw.site/Index/video/*
// @include      *://player.ezdmw.com/danmuku/*

修改完成后,刷新视频页面并等待视频完全加载,再在脚本菜单中点击「此站启用自动网页全屏」。设置成功后,视频开始播放时将自动进入网页全屏。

⚠️ 注意:配置特定网站时须用 @include,而非 @match@match 触发的是网站自带的图标,如果配置成 @match ,还需要在 class Site 中定义相关图标的 CSS 选择器)。

如要对 PPTV聚力视频 自动网页全屏,配置成:

// @match      *://v.pptv.com/show/*

则需在脚本的 class Site 中,新增以下配置:

// full-全屏,webFull-网页全屏,danmaku-弹幕开关,next-下集
static selectors = {
"v.pptv.com": { full: ".w-zoom-container div", webFull: ".w-expand-container div", danmaku: ".w-barrage div", next: ".w-next" },
};

反之亦然!!!

忽略特定页面

「此站启用自动网页全屏」后,将对目标域名下的所有页面生效(例如 YouTube 的搜索结果、短视频等场景)。若需排除不需要自动的页面,可按以下步骤操作:

  1. 进入「更多设置」→「忽略设置」→「自动网页全屏时忽略的网址」
  2. 添加目标页面的网址(如输入:https://www.youtube.com/shorts 即可排除短视频页)

⚠️ 注意:该功能不支持模糊匹配,仅采用「前缀匹配」逻辑(即仅匹配以输入网址开头的页面)

通用下集切换

脚本默认 @match 配置的网站,使用站点自带的下集图标,点击对应元素完成下集切换。

对于其他第三方视频网站,脚本提供了通用性较强的下集切换方案,让你在全网不同站点都能享受一致、顺畅的下一集体验。

1. 对所有网站生效

将脚本中的:

// @note        *://*/*

修改为:

// @match        *://*/*

2. 对特定网站生效(以咕咕番为例)

使用 @include 指定单个网站:

// @include      *://www.gugu3.com/*

配置完成后,测试网站是否能成功切换下集。

自动切换下集

功能默认处于禁用状态,需手动在脚本菜单中开启以激活使用。

设置路径:「更多设置」→「控制」→「启用自动切换至下集」或按 Shift A 快捷键。

自定义选项

  • 提前切换秒数:「参数」→「下集提前秒数」(视频距离结束前 N 秒切换)
  • 忽略网址:「忽略设置」→「自动切换下集时忽略的网址」(如 B 站非番剧页)

限制:时长小于 5 分钟的视频不会触发自动切换下集

手动拾取元素适配(解决切换失败问题)

若遇到网站无法成功切换下集,或跳转至错误地址的情况,可通过手动适配的方式,尝试解决切换失败问题。

若需重新适配网站,需先在脚本菜单中点击「删除此站剧集选择器」,清除旧有配置后再进行适配操作。

第一步:拾取当前播放集数
  1. 同时按住键盘 Ctrl + Alt 键,用鼠标点击当前播放集数的位置(如播放页显示的 “第 1 集”)。
  2. 验证与保存:
    • 拾取成功后会弹出窗口,点击「验证」若正确提示集数,点击「保存」,进入第二步;
    • 若提示 获取集数失败,手动编辑文本框中的选择器代码,修改后再次点击「验证」,成功后保存。
第二步:拾取集数列表中的任意一集
  1. 完成当前集数拾取后,继续按住 Ctrl + Alt 键,点击剧集列表(如侧边栏或底部列表)中的任意一集(如 “第 2 集”)。
  2. 验证与保存:
    • 弹窗会显示拾取的元素信息,点击「验证」按钮,若显示完整集数列表,点击「保存」完成配置。
    • 若提示 获取集数失败 或验证时显示的集数列表(如数量)有误,手动编辑选择器代码,修改后再次点击「验证」,直至显示正确集数后保存。
第三步:验证

前面歩骤操作完成后,按键盘 N 键,测试是否能成功正确的切换至下一集。

手动适配示例:

示例一:56网 (动态 class 问题)

在该网站上默认拾取到的元素选择器,验证时不能获取到当前播放集数。

原因是:当鼠标移入目标元素时,会动态添加临时 class;而当元素失去焦点后,该 class 会自动移除。由于默认拾取的选择器包含此动态 class,导致无法获取当前播放集数。

解决方法:手动删除动态添加的 class,即可成功匹配目标元素并获取当前播放集数。

图片

示例二:注视影视 (集数标识位置特殊)

在该网站上当前播放的集数在剧集列表中无明确标识(如高亮、特殊样式或独有 class),导致无法通过列表元素直接区分正在播放的集数是哪一个。

虽列表无法识别,但页面顶部标题栏中存在包含当前播放集数的明确文本,第一步拾取,可选取标题栏的集数元素定位当前播放集数。

图片

示例三:网易公开课 (选择器层级问题)

在该网站上第二步拾取元素并点击「验证」时,提示的集数列表与页面实际显示不一致,通过调整元素选择器的层级结构后,最终成功获取正确数据。

图片

测试网站

脚本已针对以下导航站收录的影视动漫类网站,完成下集切换功能的通用性测试:

自定义此站视频容器

设置路径:「更多设置」→「全屏设置」→「自定义此站视频容器」

该功能允许您为当前网站设置个性化的视频容器,解决网页全屏时可能出现的各种适配问题,例如:

  • 保留特定区域(如弹幕、控制按钮)在网页全屏模式中始终可见
  • 解决部分网页全屏后内容被截断、缩放异常等问题

示例

网站 CSS 选择器 效果说明
抖音 #slidelist > div 全屏后能切换视频
吐槽弹幕网 #m_dplayer 显示底部控制栏
虎牙直播 #videoContainer 显示底部控制栏

其他功能

1. 空格◀️▶️ 控制

默认处于禁用状态,需手动开启后使用。

设置路径:「更多设置」→「控制」→「启用 空格◀️▶️ 控制」

自定义选项:「更多设置」→「参数」→「快进/退秒数」

解决的问题:

  • 调整播放器默认快退/进秒数
  • 视频在 iframe 中无需手动聚焦也能操控视频

2. 自动退出网页全屏

B 站视频播放结束后自动退出全屏状态且点击「取消连播」按钮,避免自动播放下一个视频。

如需关闭此功能,请在脚本中注释掉以下代码:

this.autoExitFull(video);

3. 标签页不可见时自动暂停

默认启用:视频标签页切换到后台(不可见)时自动暂停,切回时自动播放。

  • 关闭路径:「更多设置」→「控制」→「禁用 不可见暂停」

4. 预设常用倍速

支持自定义常用的播放倍速,通过 Ctrl + 数字键【1~5】 一键设置,提升效率。

设置路径:「参数」→「常用倍速」(多值用英文逗号分隔,例:1.15,1.45,1.75

  • 映射规则:Ctrl + 1Ctrl + 5 分别对应预设倍速列表的第 1 至第 5 项
    • 示例:预设值为 1.15,1.45,1.75 时,Ctrl + 1 对应 1.15 倍、Ctrl + 2 对应 1.45 倍、Ctrl + 3 对应 1.75 倍

5. 全屏模式下显示时间

默认在全屏模式右上角显示:系统时间、视频剩余时长、进度百分比。

自定义选项

  • 调整颜色:「参数」→「时间颜色」
  • 非全屏显示:启用「非全屏显时间」功能

限制:≤30秒视频不显示剩余时长和进度百分比

6. 侧边单击网页全屏

将鼠标移至视频左右两侧边缘区域,当鼠标光标发生变化时 ,点击即可切换网页全屏状态。

解决的问题:

  • 在微博、X、Instagram 等平台浏览视频时,无需抬手按键盘快捷键,即可便捷切换网页全屏。
  • 避免外层父窗口视频影响内嵌 iframe 视频的网页全屏(www.reddit.com)

7. 脱离式全屏阈值

解决的问题:

  • 在单页应用(SPA)或多视频列表页中,如果通过「自定义此站视频容器」仍无法解决全屏异常,可尝试调整此阈值。

示例:YouTube Shorts新版贴吧 未修改阈值时切换网页全屏异常,修改阈值为 10 后可正常切换。

  • 缓解(网页)全屏切换卡顿、不流畅问题。

示例: 在 www.reddit.com 无限滚动加载内容,切换(网页)全屏存在明显延迟(iframe无法解决o(╥﹏╥)o)

8. 执行自定义代码逻辑

可访问的值:type, video, unsafeWindow, Tools

  • 自定义页面加载事件处理逻辑

注意: 自定义加载事件逻辑,需要刷新页面才能看到效果!!!

事件类型(type):DOMContentLoadedload

示例一:https://www.bilibili.com/

  // if(type === "DOMContentLoaded") console.log('DOM 树已构建完成,可以操作 DOM 元素了!');
  // if(type === "load") console.log('页面资源已加载完!');

  // 解决B站未登录时,播放一分钟左右弹出登录窗的问题
  Tools.waitFor(() => unsafeWindow.__BiliUser__ && !unsafeWindow.__BiliUser__.isLogin, { interval: 300 }).then(() => {
    unsafeWindow.__BiliUser__.cache.data.isLogin = true;
    unsafeWindow.__BiliUser__.cache.data.mid = Date.now();
  });

示例二:https://www.dadaqu.cc/、https://www.jddzx.cc/、https://jnvod.cc/

  // 需要点击才会加载视频资源
  if(type === "load") Tools.query("body > #start")?.click();

示例三:重写获取下集跳转元素的逻辑

  /**
   * 获取跳转目标集数的元素
   * @param isPrev 是否跳转上一集;true = 上一集,false = 下一集
   * @returns 要点击的元素
   */
  GM_E9X_FS.getJumpTargetEpisode(isPrev: boolean): HTMLElement;
  1. 慕课网

     // 默认只能本章节内切换,重写逻辑使其不限于本章节切换
     GM_E9X_FS.getJumpTargetEpisode = function () {
       const all = Tools.querys(".sec-li a"); // 章节视频列表
       const currIndex = all.findIndex((el) => el.href.includes(location.pathname)); // 当前播放的
       return all[currIndex + 1]; // 要播放的下一个视频
     };
    
  2. 我要自学网

     // 直接获取“下一节”元素
     GM_E9X_FS.getJumpTargetEpisode = () => Tools.query(".icon-next-fill");
    
  • 自定义视频各种事件处理逻辑

事件类型(type):loadstartloadedmetadataloadeddatatimeupdateratechangecanplayplayingended

示例一:https://www.bilibili.com/

  // B站已登录时,清晰度切换为 1080P,Tools.isExecuted() 用于标记只执行一次
  if (type !== "playing" || Tools.isExecuted("setBiliQuality")) return;
  Tools.waitFor(() => unsafeWindow.player && document.cookie.includes("DedeUserID"), { interval: 300 }).then(() => {
    const current = unsafeWindow.player.getQuality().realQ;
    const list = unsafeWindow.player.getSupportedQualityList();
    const target = list.find((quality) => quality === 80) ?? list[0];
    if (current !== target) unsafeWindow.player.requestQuality(target);
  });

也可以放到页面 load 事件中处理,这里只是用于举例。

示例二:https://live.bilibili.com/

  // B站直播切换最高清晰度
  if (type !== "playing" || Tools.isExecuted("setBiliLiveQuality")) return;
  Tools.waitFor(() => unsafeWindow.top?.livePlayer, { interval: 500 }).then(() => {
    const info = unsafeWindow.top?.livePlayer?.getPlayerInfo();
    const qn = info?.qualityCandidates?.[0]?.qn ?? "10000";
    if (info?.quality !== qn) unsafeWindow.top?.livePlayer?.switchQuality(qn);
  });
  • 自定义全屏切换处理逻辑

事件类型(type):isFull、isWFull、default

  if (type === "isFull") {
    console.log("进入全屏模式!");
  } else if (type === "isWFull") {
    console.log("进入网页全屏模式!");
  } else {
    console.log("退出(网页)全屏模式!");
  }