🏠 Home 

YTSpeed+

Provides an improved speed changer for YouTube

< 脚本YTSpeed+的反馈

评价:好评 - 脚本运行良好

§
发表于:2023-08-07

Pretty goooood, i've been looking for something like this for so long
also, would you make like a "compact view" or "preset" i know is small already but i would like making it smaller by df without changing the script content
anyways, thanks for making it n.n 🖤

§
发表于:2023-08-10

I've already received a request to change it looks (moving the slider to inside the player window).
Once this script has enough interest (over 30 installs), I will start redesigning it.

Thank you for your review! :D

§
发表于:2025-02-24
编辑于:2025-02-24

Note: Yeah OK after posting iNotice this web site has totally destroyed the format of the code, inserting empty lines & deleting other elements, like crazy! I will upload the real version elsewhere & post a link here. I'm only doing that in a separate post as the time to 'edit' a post is limited, though they don't say how long. O'Wait! There is an 'upload file' button too... but only for images = LOL = useless =P
---
Yes it needlessly wastes TONS of space. I have made it much smaller, by about half, but it's still absurdly gigantic, & also wastes lots of extra space with the useless extra line 2 display the speed number, which is E Z 2 put at the end of thetitle line instead. Ideally it should have the following modifications:
~ Put the title line below the slider
~ Put the speed indicator number 'multiplier' at the end of the title line
~ Give the slider a border, so we can see it with various dark themes (many script examples of 'theme modifiers' out there to see how they sometimes cause 'contrast problems'
~ Get rid of the outside border around the entire 'module'. Nobody needs it, & extra lines like that just clutter up the appearance of the page.
~ Eliminate extra space around the slider & title below it = nobody needs or wants any 'padding'. That's just a $cam evil people do, like Google spacing out all the bookmarks like crazy to try & make everything useless, so you 'just google it' instead of 'managing favorites'.
~ Put the entire thing above the user name & 'subscribe' button stuff, but below the video title.
~ Change the 'bubble button icon' to a simple square with 2 chevrons (sideways 'V' shapes) inside, pointing left & right = so anybody can intuitivey recognize that it is for 'sliding side-to-side'
~ Widen the silder so it uses the same width as the video player 'box' above it.

Note: I have helped add some elements & improvements noted above, but sinde 'greasyfork' demands silly '2 factor authentictator apps' & 'phone QR code' nonsense 2 post, iWill try & do it here in the commet instead. iSuppose this will get me 'BANNED FOREVER!' because I'm trying 2 help people out = typical 'gang' mentality of many web sites, like the whole 'moderator disease' where they R all about abusing the users 2 get off on the 'power trip' of deleting comments & baning people from their 'collection' of 'ornaments' 2 rule over with their 'clan' of 'superior' powered 'posters' = The Mighty 'Mods' LOL =)) Everything below this line is the code as I have modded it. It is NOT ideal, but I am not a programmer. Anybody interested, please fix what you can, & mail me the r###lt at 'balkanguy (at) live (dot) com' =) BTW:I do not know if the 'forum format' will damage the code in some way like inserting 'returns' or other mods that break the 'format rules' for 'Tampermonkey' or something =/ This is kind of an experiment, & if it does not work I will upload my mods & stuff to real web sites like archive.org that don't try 2 torture us with these '2 factor authentication' nonsense prank games ~>
---
// ==UserScript==
// @name .=) (MyMod4) YTSpeed+ (Similar To 'Speed+ v1.0.3' = Youtube Speed Control With Independent Pitch! Can Slow Down Like 'Tape' With Less DIstortion/Artifacts When Uncheck 'Preserve Pitch')
// @version 1.0.0
// @description Provides an improved speed changer for YouTube
// @author @charlesbobomb (Discord)
// @match http*://www.youtube.com/watch*
// @icon64 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAACiElEQVR4nO3ZvU5UURSG4RdFE+QSUEu9C1sLCy5A6Uy8EtRSwViReAcEC0y0k0ugIwIJBbWNFiQmY8FMmDmcn7X3Xt/aU5yVnIZM8s37ZAgJA+ONN954i7cKHALPg/ZeA5+B+0F7g7cBTIArYDNgb3+695UlQXjM9RuaAP+Al+K9g7m978CaeG/w5gEiEOYBlgKhCaBGaAJUR2gDUCK0AVRF6AJQIXQBVEPoA1Ag9AFUQRgCmCG8ctobAghHsAB4IlgAJsAPghCsAF4IVoAwhBQAD4QUgBCEVIBShFQAOUIOQAlCDoAUIRcgFyEXQIZQApCDUAIgQSgFSEUoBXBH8ABIQfAAcEXwArAieAG4IXgCWBA8AVwQvAGGELwBihEUADOErSCACfATWF8mgC4EFUA2ghKgDUEJkIWgBmgiqAF6EVZTZBzvLvAlcO8Z8A14AfwZenHEJ2D2XAEngXufLFqRANHPZTP2jkVEfL8Dt46bP6gNsAMcBW1dAG8sL4z6Fdie7kX8FfgFPLQ5xQBsc3NqgKT4CID5eDVAcrwa4G3LngrgNCdeCdAWrwI4BR7lxKsAuuIVAEXxCoC+eG+A4njwBXhn2PMCcIkHPwBLPPgAuMWDD4A1HsoBXOOhHCAlHsoA3OOhDCA1HvIBJPGQD/A+cy8H4AxRPOQB5###OsDZ9D3KLhXgA7BSsJcCII+HNIDSeLADhMSDHeAj5fFgAwiLBxuAVzwMA4TGwzCAZzz0A5wTHA/9AN7x0A1QJR66ARTx0A5QLR7aAXbQxMNtgKrxcBtAGQ+LANXjYRFgD/13BzOAS+CJeMt068BfYJeYL052uf7v7dOALfM9CNy6N33GG2+88cLvP3CmutKKbbx2AAAAAElFTkSuQmCC
// @grant none
// @license MPL-2.0
// @namespace charlesbobomb
// @downloadURL https://update.greasyfork.org/scripts/470633/YTSpeed%2B.user.js
// @updateURL https://update.greasyfork.org/scripts/470633/YTSpeed%2B.meta.js
// ==/UserScript==
function waitForElement(guaranteedParent, selector) {
/**
Waits for a given element to exist.
@param {Element} guaranteedParent - A parent that will always exist (to be watched)
@param {string} selector - A CSS selector for the element to wait for
**/
return new Promise(resolve => {
const o = new MutationObserver(() => { // watch for descendants being added
let el = document.querySelector(selector);
if (el) {
resolve(el || null);
o.disconnect(); // stop watching
}
});
o.observe(guaranteedParent || document.body, {
childList: true,
subtree: true
});
});
}

(function() {
'use strict';
const container = document.createElement("div");
container.id = "ytspeed-container"
container.innerHTML = 'Fine Tune Speed Control Slider : Preserve pitch? ~>  (May Need To Re-Click, Or Refresh)'+''+'

1x

';

const style = document.createElement("style");
style.innerText = `
#ytspeed-container {font-size:1.0rem;}
#ytspeed-container{background:var(--yt-spec-badge-chip-background);width:95%;padding:2vh;margin:0.1vh auto;border-radius:0px;text-align:center;}
#ytspeed-label{margin-bottom:1vh;}
#ytspeed-slider{width:100%;margin-top:1vh;background:transparent;height:2.5vh;}

#ytspeed-slider::-moz-range-track{background:var(--yt-spec-10-percent-layer);}
#ytspeed-slider::-webkit-slider-runnable-track{background:var(--yt-spec-10-percent-layer);}

#ytspeed-slider::-moz-range-thumb{background:var(--yt-spec-themed-blue);height:12px;width:12px;transition:.1s;border:transparent;border-radius:50%;}
#ytspeed-slider::-webkit-slider-thumb{background:var(--yt-spec-themed-blue);height:12px;width:12px;transition:.1s;border:transparent;border-radius:50%;}
#ytspeed-slider:hover::-moz-range-thumb{height:18px;width:18px;}
#ytspeed-slider:hover::-webkit-slider-thumb{height:18px;width:18px;}
#ytspeed-slider::-moz-range-progress{background:var(--yt-spec-themed-blue);}
#ytspeed-url {margin-top:1vh;color:var(--yt-spec-themed-blue);display:block;}

`; // various styles

document.head.appendChild(style);
let slider = container.querySelector("#ytspeed-slider"),
label = container.querySelector("#ytspeed-label"),
pitch = container.querySelector("#ytspeed-pitch");

waitForElement(null, "#bottom-row").then(e => { // make sure the element immediately below the container exists
e.insertAdjacentElement("beforebegin", container);
const video = document.querySelector("video");
const observer = new MutationObserver((changes)=> { // resets the speed & stuff when the video changes (doesn't reload bottom part of video)
changes.forEach(function(mutation) {
if (mutation.type === "attributes" && mutation.attributeName === "src") {
pitch.checked = true;
video.preservesPitch = true;
slider.value = 1;
video.playbackRate = 1;
label.innerText = "1x";
}
});
});
observer.observe(video, {
attributes: true
});
pitch.onchange = () => { video.preservesPitch = pitch.checked; }; // "Preserves pitch" checkbox
slider.oninput = () => { video.playbackRate = parseFloat(slider.value);label.innerText = slider.value + "x"; }; // Slider
});
})();

§
发表于:2025-02-24
编辑于:2025-02-24

iHav improved this 'YTSpeed+' & 'Speed+' stuff (practically the same thing) & many other scripts 4 Tampermonkey (4 yor inspiration & 'modifications' =) in many ways, & 2 C my many modz ov thiz & othur 'appz' 4 brauZen, go heer ~>
https://archive.org/download/KQQLThengz
& download the 'tampermonkey-backup' file. The exact full name will change over time as iUpdate $tuff =)
It's fairly 'small' even though there R hundreds of scripts in it, as they R a 'compact' format.
'Capture' (how ever U want 2 do this) the 'mymod' version of 'YTSpeed+' (currently 'MyMod 4' but maybe future generations as iEnhance things =) 2 C which is 'the latest greatest' & 'active' in mysetup, back up your Tampermonkey (with 'settings') & then delete it all form the browser, & load up mine (or use another browser =) & then U can clearly C which R active on YouTube & so on when U click the icon in the tool bar 2 C the list.

iWood Lov 2 post $hit heer, but 'Greasyfork' has ridiculous '2 factor authentication' nonsense games 2 sabotage everything, including innovation & the 'community' in general = lame. 'U must have a phone & a special app & bladee bla 2 B 'worthy' of posting on our glorious 'dork gang' web site, U 'stupid peasant fuk'. NO! We can upload stuff 'anywhere' without all that bull$hit, like archive.org! =) Even a bank doesn't demand all that nonsense!!

Main account stuf ~>
https://archive.org/details/@net_research_fan
4 N E 1 who mods it 2 improve it as described in my other comment(s), please send it 2 me 'the best awesomeized version' 2 'balkanguy (at) live (dot) com' =)

发表回复

登录以发表回复。