Greasy Fork is available in English.
Youtube video is paused if you have opened the url with link to comment
- // ==UserScript==
- // @name YT pause video on comment
- // @description Youtube video is paused if you have opened the url with link to comment
- // @author MK
- // @namespace max44
- // @homepage https://greasyfork.org/en/users/309172-max44
- // @match *://*.youtube.com/*
- // @match *://*.youtu.be/*
- // @icon https://cdn.icon-icons.com/icons2/1488/PNG/512/5295-youtube-i_102568.png
- // @version 1.0
- // @license MIT
- // @require https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
- // @run-at document-end
- // ==/UserScript==
- (function() {
- 'use strict';
- var urlAtLastCheck = "";
- var divVideo0 = null;
- var divVideo1 = null;
- var waitVideo;
- //Check URL changes
- const rootCallback = function (mutationsList, observer) {
- if (urlAtLastCheck != document.location.href) {
- urlAtLastCheck = document.location.href;
- clearInterval(waitVideo);
- if (urlAtLastCheck.search("/watch?") > 0 && urlAtLastCheck.search("&lc=") > 0) {
- pauseVideo();
- }
- }
- }
- const rootNode = document.querySelector("body");
- if (rootNode != null) {
- const rootObserver = new MutationObserver(rootCallback);
- rootObserver.observe(rootNode, {childList: true, subtree: true, attributes: true, characterData: false});
- }
- function pauseVideo() {
- waitVideo = setInterval(function() {
- var vCount0 = 0;
- var vCount1 = 0;
- var i;
- divVideo0 = document.querySelectorAll("div.playing-mode video:not([paused-by-script])");
- if (divVideo0 != null) {
- for (i = 0; i < divVideo0.length; i++) {
- divVideo0[i].pause();
- divVideo0[i].setAttribute("paused-by-script", "i1");
- vCount0++;
- }
- }
- divVideo1 = document.querySelectorAll("div.playing-mode video[paused-by-script='i1']");
- if (divVideo1 != null) {
- for (i = 0; i < divVideo1.length; i++) {
- divVideo1[i].pause();
- vCount1++;
- }
- }
- if (vCount0 == 0 && vCount1 > 0) clearInterval(waitVideo);
- }, 100);
- }
- })();