2017-02-24 74 views
1

我试图让视频持续时间的方法,通过这种GET urlYoutube API v3,如何获取视频播放列表持续时间?

,并通过这个参数

https://www.googleapis.com/youtube/v3/videos? 
id=QoQ_dHCi-08& // video id 
list=RDUZWrltQLTzE& // playlist id (TODO from this i want full duration) 
part=snippet,contentDetails& 
key={MYAPIKEY}& 
format=json& 
fields=items(snippet(title),contentDetails(duration)) 

在这之后我只收到视频时长不能播放列表总时间 也看到了方法,他们正在使用链接:http://youtube-playlist-analyzer ... i am getting total duration here but i want my own code to get this,我只需要通过代码查看播放列表的总持续时间。 是否有任何方法,我可以paas播放列表id并获得总持续时间。

回答

0
<?php 
    $result = array(); 
    function callone($playlistId, $nextpagetoken=''){ 
     $apikey = 'YOUR_API_KEY'; 
     $dur = file_get_contents("https://www.googleapis.com/youtube/v3/playlistItems?playlistId=".urlencode($playlistId)."&part=snippet&maxResults=50&key=$apikey&pageToken=$nextpagetoken&fields=items(snippet(resourceId(videoId))),nextPageToken"); 
     $youtubeInfo = json_decode($dur, true); 
     $sum=0; 
     for($i=0; $i<count($youtubeInfo['items']); $i++){ 
      $sum++; 
      $result[] = $youtubeInfo['items'][$i]['snippet']['resourceId']['videoId']; 
     } 
     echo '-'.$sum.'-'; 
     if(isset($youtubeInfo['nextPageToken'])){ 
      var_dump($youtubeInfo['nextPageToken']); 
      $result = array_merge($result, callone($playlistId, $youtubeInfo['nextPageToken'])); 

      unset($youtubeInfo['nextPageToken']); 
     } 
     return $result; 
    } 

// PLh-evOzpQ6aXxmdYLdHa2VjzkMA9340NO -> 20 songs 
// PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj -> 176 songs 

$mani = callone('PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj'); // playlistId with 176 songs 
echo "<pre>"; print_r($mani); 
?> 
相关问题