// ==UserScript== // @license MIT // @name 哔哩哔哩视频自动倍速播放(可记住用户设定值并自动设置播放速度) // @description 哔哩哔哩(bilibili.com)视频自动倍速播放,智能记忆用户设定的视频倍速并存储在本地,播放全站视频都会自动使用该倍速,例如全站视频都用1.25倍速播放,不用每次播放视频都要设置倍速。。修正不能自己修改速率的问题,增加快捷键切换速率,shift 1 2 3 5 = 1 2 1.25 1.5 // @icon https://www.bilibili.com/favicon.ico // @namespace https://greasyfork.org/zh-CN/users/875679-ijet // @version 1.1.4 // @author Tsing // @include *://www.bilibili.com/video/* // @include *://www.bilibili.com/medialist/play/watchlater/p* // @include *://www.bilibili.com/bangumi/play/ep* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; var player_speed = 1.25; // Default video speed var speed_arr = [0.5, 0.75, 1, 1.25, 1.5, 2]; // Video speed control panel data-value var v = localStorage.getItem("user_video_speed"); if(!v){ // Localstorage Null localStorage.setItem("user_video_speed", player_speed); }else{ if(speed_arr.indexOf(parseFloat(v)) != "-1"){ // Speed value valid player_speed = parseFloat(v); }else{ // Speed value invalid localStorage.setItem("user_video_speed", player_speed); } } window.addEventListener("keydown", (function(t) { if (t.shiftKey) { if (t.keyCode == 49) { player_speed = 1; localStorage.setItem("user_video_speed", player_speed); } else if ( t.keyCode == 50) { player_speed = 2; localStorage.setItem("user_video_speed", player_speed); } else if ( t.keyCode == 51) { player_speed = 1.25; localStorage.setItem("user_video_speed", player_speed); } else if ( t.keyCode == 53) { player_speed = 1.5; localStorage.setItem("user_video_speed", player_speed); } else if ( t.keyCode == 84) { let bt = document.getElementsByClassName("item backup")[0]; if (bt) { bt.click(); } else { document.getElementsByClassName("back-top")[0].click(); } } if (t.keyCode != 16) { console.log("User changed the speed to: " + player_speed); } } })); function set360p() { let rlist = document.getElementsByClassName("bilibili-player-video-quality-text"); rlist[rlist.length - 1].parentElement.click(); } setTimeout(set360p, 3000); setInterval(function(){ for(let i=0; i {return i.innerText == player_speed.toFixed(1) + 'x'})[0]).click(); } }, 2000); })();