PHP:如何检测我的网站上是否阻止了YouTube视频?

时间:2017-05-16 12:15:19

标签: youtube-api

我有一个嵌入youtube视频的音乐网站, 在某些视频中我收到此错误: "该视频包含来自...的内容,该内容已阻止其在本网站上显示" 如果视频在我的网站上被阻止,有没有办法检查PHP? 感谢

3 个答案:

答案 0 :(得分:2)

通过在onPlayerStateChange事件中检查-1,只要播放器出现任何类型的错误,您的代码就会触发,而不仅仅是当内容被限制用于嵌入式播放时。更好的方法是连接api的onError事件并检查错误代码101和150(它们是相同的)。这将允许您在发生其他错误(错误请求,HTML 5问题等)的情况下采取不同的行动

function onError(event){
    switch(event.data){
        case 2:
            console.log('request contains an invalid parameter value')
            break
        case 5:
            console.log('The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.')
            break
        case 100:
            console.log('The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.')
            break
        case 101:
        case 150:
            console.log('Uploader has blocked this content from embedded playback')
            break
        default:
            console.log('error code: '+event.data)

    }
}

答案 1 :(得分:0)

您需要使用YouTube API v3进行检查。

https://developers.google.com/youtube/v3/docs/videos/list

它的两倍;

1:检查是否已将其从YouTube中移除并检查总结果是否为> 0

获取https://www.googleapis.com/youtube/v3/videos?part=id&id=123456&key= {YOUR_API_KEY}

2:检查访问限制,如果总结果> 0

获取https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=123456&key= {YOUR_API_KEY}

查找regionRestriction =被阻止(国家/地区代码与您的相同)

有关API的更多信息,请点击此处;

https://developers.google.com/youtube/v3/

答案 2 :(得分:0)

在我读了一些关于这个问题的帖子之后,我明白我无法获得黑名单,所以我找到了一个虚拟解决方案, 如果youtube因任何原因无法播放视频,我会销毁播放器并做我想做的事情(显示另一个播放器/视频,或将用户移动到另一个页面)

function onPlayerStateChange(event) {
    if(event.data === -1) {
       // cant play the video, write here whatever you want
    }
}