Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Disable Youtube autoplay
- // @description This script turns off Youtube's newest autoplay feature after the page loads
- // @author MikeZ
- // @match *://*youtube.com/*
- // @run-at document-idle
- // @grant none
- // ==/UserScript==
- let StopAutoplay_navBtn = undefined;
- let StopAutoplay_ariaNode = undefined;
- const StopAutoplay_config = { attributes: true, childList: false, subtree: false };
- const StopAutoplay_intervalID = window.setInterval(StopAutoplay_enableObserver, 500);
- const StopAutoplay_observer = new MutationObserver((mutationList) => {
- mutationList.forEach((mutation) => {
- //console.log(mutationList);
- switch (mutation.type) {
- case "attributes":
- switch (mutation.attributeName) {
- case "aria-checked":
- const navValue = mutation.target.getAttribute('aria-checked');
- if(navValue == "true") {
- console.log("Disabling Autoplay....Stopping observer")
- StopAutoplay_observer.disconnect();
- StopAutoplay_navBtn.click();
- console.log("Disabling Autoplay....Re-enabling observer")
- StopAutoplay_observer.observe(StopAutoplay_ariaNode, StopAutoplay_config);
- }
- break;
- }
- break;
- }
- });
- });
- function StopAutoplay_enableObserver() {
- //debugger;
- StopAutoplay_navBtn = document.querySelector('button.ytp-button[data-tooltip-target-id="ytp-autonav-toggle-button"]');
- if (!StopAutoplay_navBtn) return;
- console.log("Autoplay control found, enabling observer")
- clearInterval(StopAutoplay_intervalID);
- StopAutoplay_navBtn.style.display = '';
- StopAutoplay_ariaNode = StopAutoplay_navBtn.querySelector('.ytp-autonav-toggle-button');
- StopAutoplay_observer.observe(StopAutoplay_ariaNode, StopAutoplay_config);
- StopAutoplay_navBtn.click();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement