PHP获取优酷网视频缩略图

优酷官方给出了api,所以很容易得到想要的缩略图。(原视频地址:https://v.youku.com/v_show/id_XMjIwNDg2NjU2.html)

地址栏输入以下:https://v.youku.com/player/getPlayList/VideoIDS/XMjIwNDg2NjU2/timezone/+08/version/5/source/out?password=&ran=2513&n=3 就可以的看到输出的json内容。

因此重点在于得到: VideoIDS/后面的这串字符 XMjIwNDg2NjU2

    // 这段正则是来获取优酷的id,出处在 /wp-content/languages/zh_CN.php,同样56网、土豆都可以找到   
    preg_match("#https?://v.youku.com/v_show/id_(?<video_id>[a-z0-9_=-]+)#i", $url, $matches);   
    $cnt = count($matches);   
    if ($cnt>0){   
        $link = "https://v.youku.com/player/getPlayList/VideoIDS/{$matches['video_id']}/timezone/+08/version/5/source/out?password=&ran=2513&n=3";   
    }else{   
        return false;   
    }   

    // 这一段是用来解析json数据,如果想跨域用js来取,这个表示压力好大   
    $ch=@curl_init($link);   
    @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
    $cexecute=@curl_exec($ch);   
    @curl_close($ch);   

    if ($cexecute) {   
        $result = json_decode($cexecute,true);   
        $json = $result['data'][0];   

        $data['img'] = $json['logo']; // 视频缩略图   
        $data['title'] = $json['title']; //标题啦   
        $data['url'] = $url;    
        $data['swf'] = "http://player.youku.com/player.php/sid/{$matches['video_id']}/v.swf"; // 视频地址   

        return $data;   
    } else {   
        return false;   
    }

代码来自牧风的获取优酷网视频缩略图

展开评论