检测 YouTube 嵌入式视频何时不再播放?
Detect when YouTube embedded video no longer playable?
有没有办法检测嵌入的 YouTube 视频不是 loading/playing 由于内容限制或删除? (而不只是用户互联网...等等)
我在网站上嵌入了一些 YouTube 视频。每隔一段时间,由于作者删除内容或使其不再 public 或任何其他原因,它们变得无法播放。
目标是利用某种 detection/trigger 来接收通知或采取一些措施来确保我的网站上没有一堆 stale/broken 视频嵌入。
我应该能够利用 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
有没有办法检测嵌入的 YouTube 视频不是 loading/playing 由于内容限制或删除? (而不只是用户互联网...等等)
我在网站上嵌入了一些 YouTube 视频。每隔一段时间,由于作者删除内容或使其不再 public 或任何其他原因,它们变得无法播放。
目标是利用某种 detection/trigger 来接收通知或采取一些措施来确保我的网站上没有一堆 stale/broken 视频嵌入。
我应该能够利用 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