2017-09-24 1 views
-1

스크립트를 사용하거나 Firefox 용 애드온을 사용하여 YouTube의 "다음 방송"또는 자동 재생 기능을 완전히 비활성화 할 수 있습니까? "자동 재생"이라는 이름은 난독 화 된 것입니다. 나는 현재 비디오 재생이 끝난 후 "추천"비디오를 재생할 기능을 특별히 언급하고 있습니다. 이 기능은 종종 동일한 두 개의 동영상을 무한 반복하는 루프에서 멈추게됩니다. 또한 동영상 아래에 댓글을 쓰는 중일 때 종종 다음 동영상을 재생합니다. 최근의 UI 변경으로 인해이 작업을 수행하는 데 사용 된 추가 기능이 손상되었습니다.YouTube의 "다음/위 재생"/ 자동 재생 기능을 사용 중지하기위한 스크립트 또는 애드온

  1. 에 쿠키를 유지하고 현재 비디오의 측면의 링크를 오염 "추천"침입 비디오 처리 : 나는이 두 불쾌한 대안 사이에서 선택을해야하기 때문에 쿠키를 사용하면, 나를 위해 옵션을 선택하지 않습니다 .

  2. 사용자로부터 광고 수익을 추출하도록 특별히 고안된 것처럼 보이는이 기능을 사용하십시오.

내가 GitHub에, 파이어 폭스에 대한에 대한 광범위한 검색 후 (최근 UI 변경 후 자동 재생 기능을 비활성화 기존의 모든 스크립트를 인식하지이기 때문에이 스레드가 중복이라고 생각하지 않는다 : 애드온 및 Google). 스크립트가 두 가지 조건을 충족하면 매우 유용합니다.

  1. 동영상이 끝나기 1 초 전에 일시 중지하는 것과 같은 사소한 해결책에 의존하지 않았습니다.
  2. YouTube가 UI를 다시 변경 한 후에도 계속 작동합니다.

아래는 이전에 사용했던 것과 비슷한 사용자 스크립트이지만 현재는 깨졌습니다.

(function() { 
'use strict'; 
function removeAPUN() { 
    var autoplaybar = document.getElementsByClassName('autoplay-bar')[0]; 
    if (autoplaybar) { 
     autoplaybar.removeAttribute('class'); 
     document.getElementsByClassName('checkbox-on-off')[0].remove(); 
    } 
} 
window.addEventListener('readystatechange', removeAPUN, true); 
window.addEventListener('spfdone', removeAPUN); 

}());

미리 감사드립니다.

+0

[이 스크립트] (https://greasyfork.org/en/scripts/32159-youtube-disable-suggested-autoplay/code) 나를 위해 작동합니다. – wOxxOm

답변

0

이 기능을 완전히 해제한다고해서 다음이 100 % 필요한지는 확실치 않지만 어쩌면 도움이 될지 모르겠습니다.

다음은이 존재 때까지 "사용 안 함 자동 재생"버튼을 찾고 유지 한 후 현재 활성으로 설정되어있는 경우,이를 클릭 : 버튼은 한 번 더 시도를 클릭

setTimeout(disable_autoplay, 1000); 

function disable_autoplay(){ 
    // Try to get the toggle button 
    var toggle_button = document.getElementById("toggle"); 
    if (toggle_button){ 
     if (toggle_button.hasAttribute("checked")){ 
      // If it is checked, click it to disable autoplay 
      toggle_button.click(); 
      // Retry one more time to make sure it stays disabled 
      setTimeout(disable_autoplay, 5000); 
     } 
    } else { 
     // Not found, retry 
     console.log("Retrying in 1s"); 
     setTimeout(disable_autoplay, 1000); 
    } 
} 

후, 필요한 것은 확실하지 않지만 자동 재생 기능을 수동으로 사용 중지하는 경우 가끔 잠시 후 다시 전환되므로 실제로 꺼져 있는지 확인해야합니다.

0

개인용으로 만든 솔루션에 대한 적응입니다. 이는 새로운 및 기존 YouTube 레이아웃 모두에서 작동합니다. 더 간단한 해결책이있을 수 있지만 배터리 소모를 피하기 위해 인터벌 타이머를 사용하지 않습니다.

function fixAutoplayNext() 
{ 
    let autoplay = document.getElementsByClassName("autoplay-bar")[0]; 
    if (autoplay) // old layout 
    { 
     let check = document.querySelector("#autoplay-checkbox-label > .checked"); 
     let input = document.getElementById("autoplay-checkbox") || document.getElementById("toggle"); 
     if (check && input) 
     { 
      if (parseInt(window.getComputedStyle(check).width, 10) > 0) 
      { 
       input.click(); 
      } 
     } 
     // Removing the switch is optional, but I don't see a reason to leave it around. 
     autoplay.parentNode.removeChild(autoplay); 
    } 
    else // new layout 
    { 
     autoplay = document.getElementById("head"); 
     if (autoplay) 
     { 
      let toggler = document.getElementById("toggle"); 
      if (toggler && toggler.hasAttribute("checked")) 
      { 
       //toggler.click(); 
       toggler.removeAttribute("checked"); 
       toggler.dispatchEvent(new Event("change")); 
      } 
      // Removing the switch is optional, but I don't see a reason to leave it around. 
      autoplay.parentNode.removeChild(autoplay); 
     } 
    } 
} 

fixAutoplayNext(); 

// Youtube loads pages entirely using Ajax. Listening for a video to load is enough for now. 
document.addEventListener("loadstart", function(e) { 
    if (e.target instanceof window.HTMLMediaElement) 
    { 
     window.setTimeout(fixAutoplayNext, 25); 
    } 
}, true); 
관련 문제