问题描述
有没有办法检测嵌入的 YouTube 视频由于内容限制或删除而没有加载/播放? (而不仅仅是用户互联网......等)
我在某个网站上嵌入了一些 YouTube 视频。每隔一段时间,由于作者删除内容或使其不再公开,或任何其他可能的原因,它们变得不可播放。
我们的目标是利用某种检测/触发器然后得到通知或采取一些措施来确保我的网站上没有嵌入一堆陈旧/损坏的视频。
我应该能够利用 API 轮询每个视频并检查其状态,但如果可能的话,我宁愿采用更被动的方法(或者可能两者结合,但想知道有哪些选项可用)。
解决方法
您可以使用嵌入代码 API。您可以检查视频的持续时间,如果为零,则视频无法加载。
https://developers.google.com/youtube/iframe_api_reference
// with this modification
function onPlayerReady(event) {
if (player.getDuration() === 0) console.log("Failed to load video");
}
,
我认为您可以使用 API 中的“onError”事件来了解 YouTube 视频是否无法加载。
function onYouTubeIframeAPIReady() {
var player;
player = new YT.Player('player',{
width: 1280,height: 720,videoId: 'M7lc1UVf-VE',events: {
'onReady': onPlayerReady,'onStateChange': onPlayerStateChange,'onError': onPlayerError
}
});
}
function onPlayerError(event) {
// Handle error ere
}
或者,如果您使用其他 API 来获取视频详细信息,请查看他们的官方错误文档以找到适合您问题的错误代码。 https://developers.google.com/youtube/v3/docs/errors