php - 从youtube获取视频链接

标签 php youtube youtube-javascript-api

在我的一个应用程序中,我需要显示一个YouTube视频。如果用户提交了视频,那么我必须检查该视频在YouTube中是否还存在。如果确定,那么我必须将视频ID保存在数据库中并在网页中生成视频。

有什么方法可以验证YouTube视频吗?

最佳答案

使用此类提取和验证youtube视频。这适用于YT网址,例如/ embed /,/ v /,?v = /,youtu.be

class Youtube {
///// Put together by Sugato


////////// $video_id is the youtube video ID /////////////////////////
public $video_id = null;

///////// the Constructer ////////////////////////////////////////
public function __construct($url)
{
    if (preg_match('/youtube\.com\/watch\?v=([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else if (preg_match('/youtube\.com\/embed\/([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else if (preg_match('/youtube\.com\/v\/([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else if (preg_match('/youtu\.be\/([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else {   
          $this->video_id  = NULL;
    }

}
/////////// validates if a youtube video actually exists //////////////
function validate()
{
    if(empty($this->video_id))
    {
        return false;
    }
    else {
            $curl = curl_init("http://gdata.youtube.com/feeds/api/videos/" . $this->video_id);
            curl_setopt($curl, CURLOPT_HEADER, true);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_exec($curl);
            $request = curl_getinfo($curl);
            curl_close($curl);

            $result = explode(";", $request["content_type"]);

            if($result[0] == "application/atom+xml")
            {

                return true;

            } else {

                return false;

            }
    }
}


}

这样叫课
  $yt = new Youtube($your_video_link_here);
    $exist  = $yt->validate();

    if($exist) 
    {
       echo "Yaaaayyyyyy!";
    } else
    {
       echo "nAAAAyyyy!!!";
    }

关于php - 从youtube获取视频链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280753/

相关文章:

php - 表 'users.users' 不存在

php - 如何通过正则表达式分割字符串并在输出中保留模式?

php - Youtube channel 嵌入尺寸

youtube-api - Youtube API v3 错误 : 403 (playlistItemsNotAccessible)

firefox - Firefox插件SDK-如何从youtube.com上的youtube播放器中检索 “currentTime”?

php mysql 按获取的顺序排序结果

php - 有什么方法可以使PHP在未设置/ undefined variable 和数组索引等中止?

iOS - 从表格单元格全屏播放 YouTube 视频

javascript - 延迟加载缩略图时阻止YouTube Cookies

youtube-api - 利用浏览器缓存 youtube 缩略图