检查youtube缩略图是否存在

时间:2016-03-04 11:42:35

标签: php youtube

如何在不使用Google API的情况下了解具有最高分辨率的YouTube缩略图是否存在?

例如,带代码的视频没有maxresolution。如果我们打开网址:http://i1.ytimg.com/vi/4rlR7EncGD0/maxresdefault.jpg我们可以看到灰色矩形,这意味着没有缩略图,对吗?

我的代码,只检查文件是否存在。如果文件存在,则在网站内显示。不幸的是,这对那些"灰色矩形"

无效。

1 个答案:

答案 0 :(得分:2)

我正在使用它:

        $item = '4rlR7EncGD0';
        $MaxResURL = 'https://i1.ytimg.com/vi/'.$item.'/maxresdefault.jpg';
        //print $MaxResURL;

        $curl = curl_init();
        curl_setopt_array($curl, array(    
        CURLOPT_URL => $MaxResURL,
        CURLOPT_HEADER => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_NOBODY => true));

        $header = explode("\n", curl_exec($curl));
        curl_close($curl);

        //var_dump($header);        

        //If maxres image exists do something with it.
        if (strpos($header[0], '200') !== false) {    
            print $MaxResURL;
        }else{
            print 'Some Other IMG';
        }

这会使用curl检查标头。如果它是好'200'打印网址,当然你可以显示图像或你特别需要做什么,我使用它来添加Facebook和Twitter元标记。

我使用了这个答案中的代码:

How do I check if a string contains a specific word in PHP?检查标题上的200

PHP get_headers not working?由于我正在使用wordpress而因为某些原因get_headers()无法正常工作而导致标题卷曲。

我不是专家,我不知道这是否是解决此问题的最佳方法,但此代码对我有用,希望有所帮助。