所以我想获取 YouTube 视频的持续时间。我找到了一些解决方案,但其中大部分都已过时。 我实际尝试过的:
public function getYTdata($url){
$youtube = "http://www.youtube.com/oembed?url=". $url ."&format=json";
$curl = curl_init($youtube);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
return json_decode($return, true);
}
输出:
{"thumbnail_url":"https:\/\/i.ytimg.com\/vi\/jmQsk6tm5aY\/hqdefault.jpg","provider_url":"https:\/\/www.youtube.com\/","thumbnail_height":360,"type":"video","provider_name":"YouTube","version":"1.0","html":"<iframe width=\"480\" height=\"270\" src=\"https:\/\/www.youtube.com\/embed\/jmQsk6tm5aY?feature=oembed\" frameborder=\"0\" gesture=\"media\" allow=\"encrypted-media\" allowfullscreen><\/iframe>","author_name":"Trap Nation","width":480,"title":"Evalyn - Filthy Rich (Sweater Beats Remix)","height":270,"thumbnail_width":480,"author_url":"https:\/\/www.youtube.com\/user\/AllTrapNation"}
我的方法不显示持续时间。那么我怎样才能获得 youtube 视频的持续时间呢?
最佳答案
好的,我找到了解决方案:
public function getYoutubeDuration($vid) {
//$vid - YouTube video ID. F.e. LWn28sKDWXo
$videoDetails = file_get_contents("https://www.googleapis.com/youtube/v3/videos?id=".$vid."&part=contentDetails,statistics&key=YOUR_KEY");
$VidDuration = json_decode($videoDetails, true);
foreach ($VidDuration['items'] as $vidTime)
{
$VidDuration= $vidTime['contentDetails']['duration'];
}
$pattern='/PT(\d+)M(\d+)S/';
preg_match($pattern,$VidDuration,$matches);
$seconds=$matches[1]*60+$matches[2];
return $seconds;
}
关于php - 如何获取 YouTube 视频持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48132968/