从youtube网址获取持续时间

前端之家收集整理的这篇文章主要介绍了从youtube网址获取持续时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个能够从网址中提取视频的youtube持续时间的功能.我读了一些教程,但没有得到它.我使用网址在我的网站上嵌入视频,我有一个拉缩略图功能,我只想要类似的东西来获取持续时间.这是我如何得到拇指……
function get_youtube_screen_link( $url = '',$type = 'default',$echo = true ) {
if( empty( $url ) )
    return false;

if( !isset( $type ) )
    $type = '';

$url = esc_url( $url );

preg_match("|[\\?&]v=([^&#]*)|",$url,$vid_id);

if( !isset( $vid_id[1] ) )
    return false;

$img_server_num =  'i'. rand(1,4);

switch( $type ) {
    case 'large':
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/0.jpg";
        break;
    case 'first':
        // Thumbnail of the first frame
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/1.jpg";
        break;
    case 'small':
        // Thumbnail of a later frame(i'm not sure how they determine this)
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/2.jpg";
        break;
    case 'default':
    case '':
    default:
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/default.jpg";
        break;
}
if( $echo )
    echo $img_link;
else
    return $img_link;

}

解决方法

你可以使用这样的东西:
<?PHP

    function getDuration($url){

        parse_str(parse_url($url,PHP_URL_QUERY),$arr);
        $video_id=$arr['v']; 


        $data=@file_get_contents('http://gdata.youtube.com/Feeds/api/videos/'.$video_id.'?v=2&alt=jsonc');
        if (false===$data) return false;

        $obj=json_decode($data);

        return $obj->data->duration;
    }

    echo getDuration('http://www.youtube.com/watch?v=rFQc7VRJowk');

?>

返回视频的持续时间(以秒为单位).

参考:http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html

您可以使用像this one这样的功能将秒数更改为小时,分钟和秒.

猜你在找的HTML5相关文章