我使用Youtube Api获取关于单个视频的信息。当我用url做请求时:
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(在url中使用多个部分),并获得信息。
是否有人有线索如何做到这一点,只使用一个函数?
好了,我自己找到了答案:
$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;
这不是一个函数,但它将执行以下操作:)