您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Dynamically adjust video playback speed & seeking instantly with your mousewheel, no more need to go through player menus every time.
当前为
- // ==UserScript==
- // @name YouTube Video Speed & Seek Mouse Control
- // @namespace YPSSMC
- // @version 4.0
- // @description Dynamically adjust video playback speed & seeking instantly with your mousewheel, no more need to go through player menus every time.
- // @run-at document-ready
- // @include http://www.youtube.com/*
- // @include https://www.youtube.com/*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
- // @require https://greasyfork.org/scripts/12284-jquery-mousewheel-3-1-13/code/jQuery%20Mousewheel%203113.js
- // @require https://greasyfork.org/scripts/14098-bililiterange-js/code/bililiteRangejs.js?version=88786
- // @require https://greasyfork.org/scripts/14097-jquery-simulate/code/jQuery%20Simulate.js?version=88785
- // @require https://greasyfork.org/scripts/14096-jquery-simulate-extended-plugin-1-3-0/code/jQuery%20Simulate%20Extended%20Plugin%20130.js?version=88784
- // @require https://greasyfork.org/scripts/14095-jquery-simulate-key-sequence-plugin-1-3-0/code/jQuery%20Simulate%20Key-Sequence%20Plugin%20130.js?version=88783
- // @author drhouse
- // @icon https://s.ytimg.com/yts/img/favicon-vfldLzJxy.ico
- // ==/UserScript==
- $(document).ready(function () {
- function getPlaybackRate() {
- var v = $('.video-stream')[0];
- return v.playbackRate;
- }
- var speed = getPlaybackRate().toFixed(2);
- var isShift = false;
- var isAlt = false;
- var ytplayer = document.getElementById("movie_player");
- $(ytplayer).prepend('<div id="rate">' + speed + ' </div>');
- $("#rate").css("z-index","999");
- $("#rate").css('position', 'absolute');
- $("#rate").css('top', '0');
- $("#rate").css('right', '0');
- function setPlaybackRate(r) {
- var v = $('.video-stream')[0];
- if (v === undefined || v.playbackRate === undefined) {
- setTimeout(function(){setPlaybackRate(r);}, 1000);
- return;
- }
- v.playbackRate = r;
- }
- $(window.document).mousewheel(function(e, deltaX) {
- //Seek | Shift+WheelUp/Down
- if (e.shiftKey) {
- if (deltaX>0) {
- if (location.href.toString().indexOf("embed") == -1) { //youtube.com
- var ytplayer = document.getElementById("movie_player");
- var time = ytplayer.getCurrentTime();
- ytplayer.seekTo(time+5, true);
- }
- else{$('.video-stream').simulate("key-sequence", { sequence: "l" });} //embed
- } else {
- if (location.href.toString().indexOf("embed") == -1) { //youtube.com
- var ytplayer = document.getElementById("movie_player");
- var time = ytplayer.getCurrentTime();
- ytplayer.seekTo(time-5, true);
- }
- else{$('.video-stream').simulate("key-sequence", { sequence: "j" });} //embed
- }
- e.preventDefault();
- }
- //Speed | Alt+WheelUp/Down
- if (e.altKey) {
- var step = 0.25;
- if (e.deltaY<0) {
- var speed = Math.max(0.0,(getPlaybackRate()-step).toFixed(2));
- setPlaybackRate(speed);
- } else {
- var speed = Math.min(8,(getPlaybackRate()+step).toFixed(2));
- setPlaybackRate(speed);
- }
- e.preventDefault();
- $("#rate").remove();
- var speed = speed.toFixed(2);
- var ytplayer = document.getElementById("movie_player");
- $(ytplayer).prepend('<div id="rate">' + speed + ' </div>');
- $("#rate").css("z-index","999");
- $("#rate").css('position', 'absolute');
- $("#rate").css('top', '0');
- $("#rate").css('right', '0');
- }
- });
- })