YouTube的iframe的API检查是否存在视频(Youtube iframe api chec

2019-08-02 13:56发布

我的工作,有一个文本输入,用户可以添加他们想要插入页面的YouTube视频的ID,然后我叫YouTube的iframe的API来加载视频一个简单的页面上。 但是,如果用户增加,做一个ID不存在,我得到一个黑色的屏幕。

我希望有人知道,如果加载之前的视频中存在检查的方式。

这是我的代码:

$(document).ready(function() {
  $('#loadVid').click(function() {
     var player;
     var urlVid = $('#urlVid').val(); //GET THE VIDEO CODE FROM THE TEXT INPUT

     player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: urlVid,
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
     });
  });
});

Answer 1:

这里$视频ID包含yuotube网址的视频ID

public function checkVideoExists() {
        $headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $videoId);
        if (!strpos($headers[0], '200')) {
            echo "The YouTube video you entered does not exist";
            return false;
        }
    }


Answer 2:

根据该文件中的onError应该给你这样的信息

100 -请求的视频没有被发现。 当视频已被删除(因为任何原因),或已被标记为私有出现此错误。

onerror事件处理程序添加到事件对象

events: {
  'onReady': onPlayerReady,
  'onStateChange': onPlayerStateChange,
  'onError': function(errEvent) {
      var errCode = errEvent.data;
      if(errCode == 100) {
          alert('Video Not Found');
      }
  }
}


Answer 3:

拆机之前只是触发测试Ajax请求的URL。 如果YouTube页面的视频不存在,它返回一个404头(我只是一个不存在的视频网址测试这一点)。

如果您使用$阿贾克斯方法,你可以插入成功回调播放器加载功能,并触发错误回调错误警报(因为它应该被称为如果响应报头是4XX或5XX)



文章来源: Youtube iframe api check if video exists