Приглушенное фоновое видео с YouTube заблокировано исходным кодом uBlock.Есть ли способ обойти это? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть видео на YouTube, которое воспроизводится за заголовком моей веб-страницы.Я загружаю его, используя следующий код JavaScript.Вы также можете увидеть это на моей домашней странице: http://theinternet.io/

if (window.matchMedia("(max-device-width: 700px)").matches) {
    // Show picture instead of video for mobile
    var bannerPic = document.createElement("img");
    bannerPic.id = "bannerPic";
    bannerPic.src = "https://i.imgur.com/nnw4EIO.png";
    document.getElementById("bannerVideoDiv").appendChild(bannerPic);

  } else {
    var videoDiv = document.createElement("div");
    videoDiv.id = "player";
    document.getElementById("bannerVideoDiv").appendChild(videoDiv);

    var tag = document.createElement('script');
    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

    var player;
    function onYouTubeIframeAPIReady() {
      player = new YT.Player('player', {
          videoId: 'TfMv2WlYxAA',
          playerVars: {
              modestbranding: 0,
              autoplay: 1,
              controls: 0,
              showinfo: 0,
              wmode: 'transparent',
              branding: 0,
              rel: 0,
              autohide: 0,
              origin: window.location.origin,
              mute: 1
          },
          events: {
              'onReady': onPlayerReady,
              'onStateChange': onPlayerStateChange
          }
        });
      }
      function onPlayerReady(event) {
          event.target.playVideo();
          player.mute();
      }
      function onPlayerStateChange(event) {
          if (event.data === YT.PlayerState.ENDED) {
              player.playVideo(); 
              player.mute();
          }
      }
  }

Этот код отображает изображение для мобильных устройств, а для обычных устройств он отключает звук видео, поэтому Chrome позволяет автоматически воспроизводить его и воспроизводить циклы.видео без перезагрузки каждый раз.К сожалению, он по-прежнему заблокирован источником uBlock Origin (и, возможно, другими рекламодателями).Что еще хуже, рекламодатель блокирует не только видео на YouTube, но и весь div, поэтому заголовок моей страницы (который наложен сверху) даже не будет отображаться.

Есть ли способчтобы видео не было заблокировано рекламодателями?Если он действительно блокирует все видео с автоматическим воспроизведением (даже приглушенные), каков наилучший способ обнаружить блокировщик рекламы, чтобы вместо этого я мог отображать изображение в фоновом режиме (как я это делаю для мобильных устройств)?

...