she*_*ell 2 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 finished playing");
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里看到了这个问题:
我想知道youtube api有没有更新?另外,有人可以提供一些youtube广告检测器的代码吗?我不确定在广告播放时如何可靠地捕获.
有点晚但迟到总比没有...
我目前正在开发专门针对YouTube视频播放操作的Chrome扩展程序.这是我发现的一种检测广告是否正在播放的方法:
注意:我使用的所有课程和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)
{
return true;
}}
Run Code Online (Sandbox Code Playgroud)
为了获得更可靠的结果,您还可以检查movie_player
元素classList
以查看是否存在contains("ad-showing")
.顺便说一下,movie_player
是id.
提示:我用inspect元素找到了所有这些
这是我发现的唯一可靠的检测广告的方式,而无需深入了解YouTube API.
归档时间: |
|
查看次数: |
2319 次 |
最近记录: |