您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add Speed Slider to Youtube Player Settings
当前为
- // ==UserScript==
- // @name Youtube Player Speed Slider
- // @namespace youtube_player_speed_slider
- // @version 0.1.0
- // @description Add Speed Slider to Youtube Player Settings
- // @author Łukasz
- // @match https://*.youtube.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- var YT_F = {};
- YT_F.option = {
- menu:null,
- speedMenu: null,
- label:null,
- menuClass : "ytp-menuitem",
- };
- YT_F.new = function(tag, option){
- var element = document.createElement(tag);
- for(var param in option){
- element[param] = option[param];
- }
- return element;
- };
- YT_F.get = function(tselector, all){
- all = all || false;
- var type = tselector.substring(0,1);
- var selector = tselector.substring(1);
- if(type == "#"){
- return document.getElementById(selector);
- }
- else if(type == "."){
- var elements = document.getElementsByClassName(selector);
- if(all){
- return elements;
- }
- else{
- return elements.length ? elements[0] : null;
- }
- }
- };
- YT_F.build = function() {
- YT_F.option.menu = YT_F.get('.ytp-panel-menu');
- YT_F.option.menu.appendChild(YT_F.buildSpeedMenu());
- };
- YT_F.buildSpeedMenu = function(){
- YT_F.option.speedMenu = YT_F.new('div', {'className':'ytp-menuitem'});
- YT_F.option.speedMenu.label = YT_F.new('div', {'className':'ytp-menuitem-label', 'innerHTML':'<b>Szybkość: 1</b>'});
- var right = YT_F.new('div', {'className':'ytp-menuitem-content'});
- var range = YT_F.new('input', {'className':'', 'type':'range', 'min':0.5, 'max':4, 'step':0.1, 'value':1});
- document.addEventListener('change', YT_F.onchange);
- right.appendChild(range);
- YT_F.option.speedMenu.appendChild(YT_F.option.speedMenu.label);
- YT_F.option.speedMenu.appendChild(right);
- return YT_F.option.speedMenu;
- };
- YT_F.updateLabel = function(value){
- YT_F.option.speedMenu.label.innerHTML = "Szybkość: " + value;
- };
- YT_F.onchange = function(event){
- YT_F.updateLabel(event.target.value);
- YT_F.updatePlayerSpeed(event.target.value);
- };
- YT_F.updatePlayerSpeed= function(value){
- YT_F.get('.html5-main-video').playbackRate = value;
- };
- YT_F.annotationsSwitchOffAndRemoveDefaultSpeedMenu = function(){
- var settings_button = YT_F.get(".ytp-settings-button");
- settings_button.click(); settings_button.click();
- var all_labels = document.getElementsByClassName("ytp-menuitem-label");
- for (var i = 0; i < all_labels.length; i++) {
- if ((all_labels[i].innerHTML == "Annotations" || all_labels[i].innerHTML == "Adnotacje") &&
- (all_labels[i].parentNode.getAttribute("aria-checked") == "true")) {
- all_labels[i].parentNode.click();
- }
- if (all_labels[i].innerHTML == "Speed" || all_labels[i].innerHTML == "Szybkość"){
- all_labels[i].parentNode.style.display = 'none';
- }
- }
- };
- YT_F.build();
- YT_F.annotationsSwitchOffAndRemoveDefaultSpeedMenu();
- })();