Greasy Fork is available in English.
bilibili B站自动跳过番剧片头片尾。可在代码第一行第二行修改片头和片尾时间。支持edge以及chrome。项目地址https://github.com/RyananChen/scripts/tree/main/BiliBili-skip-IntroL-Outro-Tampermonkey
// ==UserScript== // @name B站哔哩哔哩bilibili跳过番剧片头片尾【自动版】 // @description bilibili B站自动跳过番剧片头片尾。可在代码第一行第二行修改片头和片尾时间。支持edge以及chrome。项目地址https://github.com/RyananChen/scripts/tree/main/BiliBili-skip-IntroL-Outro-Tampermonkey // @namespace http://tampermonkey.net/ // @version 1.3 // @author RyananChen // @match https://www.bilibili.com/bangumi/play/* // @license BSD // @grant none // ==/UserScript== /* //此脚本作用域match只作用于番剧,避免其他视频也触发快捷键。如果改作用域到b站全部可以写@match https://www.bilibili.com/video/* //但这么做会导致看什么视频都跳过,不合适。 //参考链接 chatgpt https://greasyfork.org/zh-CN/scripts/443560 https://greasyfork.org/zh-CN/scripts/441461 */ const skip_IntroLength = 90; // 设置片头长度,单位为秒 const skip_OutroLength = 44; // 设置片尾长度,单位为秒 (function() { setInterval(() => { const video = document.querySelector("#bilibili-player video"); // 获取页面上的视频元素 if (video && !isNaN(video.duration)) //如果获取到视频元素并且视频总长度为数字还是啥,没细看isnan。 { const currentTime = video.currentTime; // 获取当前播放时间的时间戳 if (currentTime < skip_IntroLength) { video.currentTime = skip_IntroLength; // 如果仍处于片头时间,将视频进度设置为90秒 } //如果当前播放时间大于【视频总长度-片尾曲时间】,并且小于【视频总长度-2秒】 //则跳到【视频总长度】,加了那个并且的条件是为了防止它一直重复跳导致卡顿。 else if (currentTime > (video.duration - skip_OutroLength) && currentTime < (video.duration - 2)) { //duration 属性返回当前视频的长度,以秒计算。 video.currentTime = video.duration; // 如果处于片尾时间,将视频进度设置为结束 /* 原本想在片尾的时候停止脚本几秒钟,来防止脚本循环操作。 后来通过在else if的条件中加上了&& currentTime < (video.duration - 2)来避免了这个情况的发生。 并且这个等待不生效啊。具体没看,再议。 setTimeout(() => { // 等待15秒后进行后续操作 // 这里可以放置需要执行的代码 console.log('15秒已过,可以进行后续操作了'); }, 15000); */ } } }, 2000); // 每2秒执行一次setInterval,检查一次视频播放进度 })();