Youtube API检测广告

Youtube API检测广告,youtube,youtube-api,youtube-data-api,Youtube,Youtube Api,Youtube Data Api,有没有一种方法可以在youtube广告播放时以及结束时检测到它 比如: function onPlayerStateChange(event) { if(event.data == advertisement) { console.log("Advertisement is playing"); } if(event.data == advertisementIsOver) { console.log("Advertisement has finishe

有没有一种方法可以在youtube广告播放时以及结束时检测到它

比如:

function onPlayerStateChange(event) {
   if(event.data == advertisement) {
      console.log("Advertisement is playing");
   }
   if(event.data == advertisementIsOver) {
      console.log("Advertisement has finished playing");
   }
}
我在这里看到一个问题:


我想知道youtube api是否有任何更新?另外,有人能提供一些youtube广告检测器的代码吗?我不确定在播放广告时如何可靠地捕捉到信息。

您可能需要检查一下。声明您可以使用在开始播放广告时调用的


这里有一个相关的例子,可能会有所帮助。

有点晚,但迟做总比不做好

我目前正在开发一个专门针对YouTube视频播放操作的chrome扩展。这是我发现的一种检测广告是否播放的方法:

注意:我使用的所有类和Id都会随着YouTube开发者的更改而更改

1) 首先获取html5视频元素:
var mainVideo=document.getElementByClassName(“html5主视频”)
。目前没有它的元素Id,但它始终具有类
html5主视频

2) 为视频准备播放时设置一个事件处理程序,该事件处理程序将检查它是否为广告,并在加载新视频并准备播放时触发
mainVideo.oncanplay=isVideoAnAd

3) 播放广告时,进度条为黄色,或者更具体地说是
rgb(255,204,0)
,使用jQuery可以轻松比较此属性

function isVideoAnAd () {
     if($(".ytp-play-progress").css("background-color") === "rgb(255, 204, 0)
     {
        return true;
     }}
要获得更可靠的结果,您还可以检查
movie\u player
元素
classList
,查看它是否
包含(“广告显示”)
。顺便说一下,
movie\u player
是id

提示:我在inspect元素中找到了所有这些


这是我发现的唯一可靠的检测广告的方法,无需深入YouTube API。

这似乎只适用于YouTube android API。您是否知道对onAdStarted()或youtube iframe的任何等效方法的支持?@shell此处的问题相同:您是否找到了一种可以应用于youtube web iframe api的方法?@shell可能使用youtube数据api,它比其他基于css/js的解决方案更稳定*