您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
最开始的三个开关autoPlay表示点进视频2秒后自动开始播放,backspacePlay表示点进视频后可用空格键控制播放暂停,listPlay表示视频结束后跳过5秒等待直接下一part
当前为
// ==UserScript== // @name bilibili 自动播放 // @namespace www.papercomment.tech // @version 0.5 // @description 最开始的三个开关autoPlay表示点进视频2秒后自动开始播放,backspacePlay表示点进视频后可用空格键控制播放暂停,listPlay表示视频结束后跳过5秒等待直接下一part // @author c4r // @match https://www.bilibili.com/bangumi/* // @match https://www.bilibili.com/video/* // @match https://www.bilibili.com/watchlater/* // @grant none // @license MPL-2.0 // ==/UserScript== (function() { 'use strict'; // Your code here... let autoPlay = true let backspacePlay = true let listPlay = true function clickPlayer(){ //console.warn('UI', 'clickPlayer') let target = document.getElementsByTagName('video')[0] if (target.paused){ target.play() } else{ target.pause() } } if(backspacePlay){ document.addEventListener("keydown", function handler(e) { if((e || window.event).keyCode === 32){ //console.warn('UI', 'backspace hitted') e.preventDefault() clickPlayer() document.getElementsByTagName('video')[0].parentElement.parentElement.click() } e.currentTarget.removeEventListener(e.type, handler) }); } function playNow(list, obs){ //console.log('UI', list) list.forEach((mutation, index)=>{ if(mutation.target.matches('div.bilibili-player-video-toast-bottom')&& mutation.addedNodes.length!==0&& mutation.addedNodes[0].querySelector('.bilibili-player-video-toast-item-jump').textContent=='立即播放'){ //console.log('UI',mutation) mutation.addedNodes[0].querySelector('.bilibili-player-video-toast-item-jump').click() } }) } let observer = new MutationObserver(playNow) let traceAnchor, anchor function timer(){ // console.warn('UI', 'tik tok') if(anchor = document.getElementById('bofqi')){ clearInterval(traceAnchor) // console.warn('UI', anchor) observer.observe(anchor, {childList:true, subtree:true}) if(autoPlay){ setTimeout(clickPlayer, 2000); } } } if(listPlay){ traceAnchor = setInterval(timer, 200) } })();