YouTube HTML5 AutoPause

Automatically pause YouTube HTML5 videos on Youtube

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        YouTube HTML5 AutoPause
// @namespace   https://greasyfork.org/en/users/13981-chk1
// @description Automatically pause YouTube HTML5 videos on Youtube
// @include     https://*.youtube.com/watch*
// @include     http://*.youtube.com/watch*
// @version     0.3
// @grant       none
// @run-at      document-end
// ==/UserScript==

var config = { 
  childList: true,
  attributes: true, 
  subtree: true,
  attributeOldValue: true
};

var docbody = document.body;
var playBtn;

var playBtnObserver = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if(mutation.type == "attributes"){// && mutation.oldValue == "ytp-play-button ytp-button") {
      //console.log(mutation);
      //console.log(playBtn);
      playBtn.click();
      playBtnObserver.disconnect();
    }
  });
});

var bodyObserver = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if(mutation.type == "childList" && mutation.addedNodes.length >= 1) {
      //console.log(mutation);
      var _playBtn = document.querySelector('.ytp-play-button');
      if(_playBtn){
        playBtn = _playBtn;
        bodyObserver.disconnect();
        playBtnObserver.observe(playBtn, config);
      }
    }
  });    
});

bodyObserver.observe(docbody, config);