2016-10-11 61 views
0

有沒有辦法檢測到youtube廣告,當它正在播放,當它結束?Youtube API檢測廣告

喜歡的東西:

function onPlayerStateChange(event) { 
    if(event.data == advertisement) { 
     console.log("Advertisement is playing"); 
    } 
    if(event.data == advertisementIsOver) { 
     console.log("Advertisement has finished playing"); 
    } 
} 

我在這裏看到了一個問題:

What is the YouTube's PlayerState during pre-roll ad?

如果有對YouTube API的任何更新,我想知道?另外,有人可以提供一些YouTube的廣告探測器的代碼?我不確定廣告播放時如何可靠捕捉到。

回答

0

您可能想要檢查這個documentation。據稱,您可以使用onAdStarted(),這是在廣告播放開始時調用的。

這是一個相關的forumtutorial這可能會有所幫助。

+0

這似乎只適用於youtube android api。你知道任何支持onAdStarted()或任何等效的方法爲youtube iframe嗎? – shell

1

有點晚,但遲到總比不到好...

我目前正在開發一個Chrome擴展特別針對YouTube的視頻播放操作。這是我發現的一種檢測廣告是否正在播放的方法:

注意:我使用的所有課程和ID都可能隨YouTube開發人員更改而改變。

1)首先獲取html5視頻元素:var mainVideo = document.getElementByClassName("html5-main-video")。目前沒有元素ID,但它始終具有類html5-main-video

2)設置一個事件處理程序,用於視頻何時可以播放,以檢查是否是廣告,並在新視頻加載並準備播放時觸發mainVideo.oncanplay = isVideoAnAd

3)當廣告播放進度條是黃色或者更具體rgb(255, 204, 0)和使用jQuery function isVideoAnAd() { if($(".ytp-play-progress").css("background-color") === "rgb(255, 204, 0) { ... }}

對於更可靠的結果,你也可以檢查movie_player元素classList,看它是否contains("ad-showing")這個屬性是易於比較。順便說一句,movie_player是id。

提示:我發現這一切與檢查元素

這真的是唯一可靠的方法,我發現,而無需潛入的YouTube API來檢測廣告。