【发布时间】:2017-08-28 21:10:14
【问题描述】:
我尝试从
获取 youtube 视频链接http://www.youtube.com/get_video_info?video_id=XXXXXXXX
但是 1080 像素和 4k 不在列表中所以我如何获取此分辨率的链接
api v3 不允许获取 url
【问题讨论】:
-
任何答案acn帮助?
标签: youtube
我尝试从
获取 youtube 视频链接http://www.youtube.com/get_video_info?video_id=XXXXXXXX
但是 1080 像素和 4k 不在列表中所以我如何获取此分辨率的链接
api v3 不允许获取 url
【问题讨论】:
标签: youtube
这个功能可以完成这项工作
<?php
function get_youtube($id)
{
$data = file_get_contents('http://youtube.com/get_video_info?video_id=' . $id . '&el=vevo&fmt=18&asv=2&hd=1');
parse_str($data , $details);
$my_formats_array = explode(',' , $details['adaptive_fmts']);
$avail_formats[] = '';
$i = 0;
$ipbits = $ip = $itag = $sig = $quality_label = '';
$expire = time();
foreach ($my_formats_array as $format) {
parse_str($format);
$avail_formats[$i]['itag'] = $itag;
$avail_formats[$i]['quality'] = $quality_label;
$type = explode(';', $type);
$avail_formats[$i]['type'] = $type[0];
$avail_formats[$i]['url'] = urldecode($url) . '&signature=' . $sig;
parse_str(urldecode($url));
$avail_formats[$i]['expires'] = date("G:i:s T", $expire);
$avail_formats[$i]['ipbits'] = $ipbits;
$avail_formats[$i]['ip'] = $ip;
$i++;
}
return $avail_formats;
}
$qualitys = get_youtube($_GET['id']);
foreach($qualitys as $video)
{
//echo "<a href='" . $video['url'] . "'>" . $video['quality'] . "-" . $video['type'] . "</a></br>"; //print all resolution
// for getting 1080p only
if($video['quality']=='1080p' && $video['type']=='video/mp4'){
echo "<a href='" . $video['url'] . "'>" . $video['quality'] . "-" . $video['type'] . "</a></br>";
}
}
【讨论】: