NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name SlowMobius // @namespace https://my.stratoplan.net/ // @version 0.009 // @description Time control is now possible! // @author 3rdUnknown // @author Special thanks go to Sergey // @copyright 2019 // @license MIT // @match https://my.stratoplan.net/lesson/* // @grant none // @run-at document-idle // @updateURL https://openuserjs.org/meta/3rdUnknown/SlowMobius.meta.js // ==/UserScript== function slowMobius(speed) { document.querySelector('video').playbackRate = speed; jQuery('div.vjs-playback-rate-value').text((speed+'x')); console.log('Time: '+speed+'x'); } function unlockRate() { let el1 = document.getElementsByClassName("vjs-playback-rate"); el1[0].classList.remove('vjs-hidden'); el1[0].innerHTML ='<button class="vjs-playback-rate vjs-menu-button vjs-menu-button-popup vjs-button" type="button" aria-disabled="false" title="Playback Rate" aria-haspopup="true" aria-expanded="false"> \ <span aria-hidden="true" class="vjs-icon-placeholder"></span> \ <span class="vjs-control-text" aria-live="polite">Playback Rate</span> \ </button> \ <div class="vjs-menu"> \ <ul class="vjs-menu-content" role="menu"> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="true"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.1x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.2x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.3x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.4x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.5x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.6x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.7x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.8x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">1.9x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ <li class="vjs-menu-item vjs-quality-item" tabindex="-1" role="menuitemradio" aria-disabled="false" aria-checked="false"> \ <span class="vjs-menu-item-text vjs-playback-rate-item">2x</span> \ <span class="vjs-control-text" aria-live="polite"></span> \ </li> \ </ul> \ </div> \ <div class="vjs-playback-rate-value">1x</div>' console.log('Time control module was injected'); } function setSpeed() { jQuery('span.vjs-playback-rate-item').each(function(index, value) { jQuery(this).on('click.rate', function(){slowMobius((1 + index * 0.1).toFixed(2))}); }); } setTimeout(function() { unlockRate(); setSpeed(); }, 2000);