如何使用YouTube JS API在5秒钟后跳过广告



我几乎可以使用JavaScript API控制YouTube播放器。

player = document.getElementById('movie_player');

但我找不到任何功能可以让我在5秒钟后跳过广告视频(如果有的话(。

我怎样才能做到这一点?

我找不到一个干净的解决方案。但下面是我所做的,

选项1:

在书签中添加以下代码

javascript:(function(){setInterval(function() { var $cross = document.getElementsByClassName("ytp-ad-overlay-close-container")[0]; var $skip = document.getElementsByClassName("ytp-ad-skip-button")[0]; if ($cross != undefined) $cross.click(); if ($skip != undefined) $skip.click() }, 2000)})();

在书签中添加JS代码很容易,

  • 只需点击书签图标
  • 单击"更多"按钮

在URL中添加上面的代码并给它一个名称,它现在将出现在书签选项卡中。

每当你打开任何youtube视频,只需点击你创建的书签即可跳过

选项2(更好的选项(:

  1. 按要求安装镀铬加长件
  2. 单击New Rule
  3. 选择Insert Scripts
  4. 请求中的Give youtube url包含
  5. 单击Add Custom Script并选择Custom Code
  6. 插入以下代码并单击保存
setInterval(function() { 
            var $cross = document.getElementsByClassName("ytp-ad-overlay-close-container")[0]; 
            var $skip = document.getElementsByClassName("ytp-ad-skip-button")[0]; 
            if ($cross != undefined) $cross.click(); 
            if ($skip != undefined) $skip.click() 
            }, 2000);

每当youtube打开时,Requestly都会运行此代码,它会跳过广告和广告视频。

注意:这是一个肮脏的解决方案,我使用它,它对我有效。可能有更好的解决方案

您只需要检测跳过按钮的id(如果可用(。然后调用它的事件点击。它看起来像这样:

setTimeout(function(){
  var _skip = $('#skip_button_id');
  if(_skip!=null)
    _skip.click();
}, 1000);

这不是真正的代码。只需让您知道如何操作即可。

const skip_add = (clazz) => 
 {
  const buttons = document.getElementsByClassName(clazz);
  for (const button of buttons) 
    {
     button.click();
     console.log("No More Ad");
    }
 }
 setInterval(() => 
 {
  skip_add("ytp-ad-skip-button-text");
  skip_add("ytp-ad-overlay-close-button");
 }, 1000);

这不是一个非常优雅的代码,但试着每隔1000ms检查一次广告是否存在。利用时间进行优化或者添加一个if循环来计数器检查

使用这个简单的javascript bookmarklet:

javascript:document.querySelector('video'(.currentTime=document.querySelect('video`(.duration

相关内容

  • 没有找到相关文章

最新更新