我正在寻找一个能够从网址中提取视频的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这样的功能将秒数更改为小时,分钟和秒.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。