2016-09-20 63 views
0

我使用Youtube Api获取有关单个视频的信息。当我做了一个像这样的网址的请求:如何组合功能以获取多种类型的信息

https://www.googleapis.com/youtube/v3/videos?part=status,snippet,contentdetails&id=$videoID&key=$apikey 

我得到所有我需要的信息。问题是,我找不到一种方法来结合我必须一次性获取信息的功能。

我走到这一步:

function getDescription($videoID){ 
    $apikey = "<MYKEY>"; 

    $desc = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=snippet&id=$videoID&key=$apikey"); 
    $description =json_decode($desc, true); 
    foreach ($description['items'] as $videodesc) 
    { 
     $description= $videodesc['snippet']['description']; 
    } 
    return $description; 
} 

function getPublishedAt($videoID){ 
    $apikey = "<MYKEY>"; 

    $pub = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=snippet&id=$videoID&key=$apikey"); 
    $publish =json_decode($pub, true); 
    foreach ($publish['items'] as $published) 
    { 
     $publish= $published['snippet']['publishedAt']; 
    } 

    $publish = new DateTime($publish); 
    $publish = $publish->format('Y-m-d H:i:s'); 

    return $publish; 

} 

echo "<br>Description: "; 
echo getDescription("<VIDEO-ID>"); 
echo "<br>PublishedAt: "; 
echo getPublishedAt("<VIDEO-ID>"); 

因此,此代码的工作,但我喜欢做一个请求的API(在网址中使用多个部分),并获取信息。

有没有人有线索如何使用一个函数做到这一点?

回答

0

好吧,我发现了自己的答案:

$videoinfo = file_get_contents("https://www.googleapis.com/youtube/v3/videos?id=<video-id>&part=snippet,status,contentDetails,statistics&part=statistics&key=<api-key>"); 
    $videoinfo =json_decode($videoinfo, true); 
    foreach ($videoinfo['items'] as $embed) 
    { 
     $emb= $embed['status']['embeddable']; 
     $license= $embed['status']['license']; 
     $duration= $embed['contentDetails']['duration']; 
    } 
echo $emb; 
echo $license; 
echo $duration; 

这不是一个功能,但是这也将这样做TRIC :)