$youtube = simplexml_load_file('http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2');
$title = $youtube->title;
这得到了标题。但是我怎么能得到观看次数和描述呢?试过$youtube->description;
了$youtube->views;
$youtube = simplexml_load_file('http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2');
$title = $youtube->title;
这得到了标题。但是我怎么能得到观看次数和描述呢?试过$youtube->description;
了$youtube->views;
我建议您使用 JSON 输出而不是 XML 输出。
您可以通过将alt=json
参数添加到您的 URL 来获取它:
http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2&alt=json
然后你必须加载 json 并解析它:
<?php
$json_output = file_get_contents("http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2&alt=json");
$json = json_decode($json_output, true);
//This gives you the video description
$video_description = $json['entry']['media$group']['media$description']['$t'];
//This gives you the video views count
$view_count = $json['entry']['yt$statistics']['viewCount'];
//This gives you the video title
$video_title = $json['entry']['title']['$t'];
?>
希望这可以帮助。
更新
要查看 JSON 输出有哪些变量,请将prettyprint=true
参数添加到 URL 并在浏览器中打开它,它将美化 JSON 输出使其更易于理解:
http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2&alt=json&prettyprint=true
您可以编写而不是浏览 URL
echo "<pre>";
print_r($json);
echo "</pre>";
后
$json = json_decode($json_output, true);
它将打印格式化的 JSON 输出
我的代码:
$vId = "Jer8XjMrUB4";
$gkey = "AIzaSyCO5lIc_Jlrey0aroqf1cHXVF1MUXLNuR0";
$dur = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id=".$vId."&key=".$gkey."");
$data = json_decode($dur, true);
foreach ($data['items'] as $rowdata) {
$vTime = $rowdata['contentDetails']['duration'];
$desc = $rowdata['snippet']['description'];
}
$interval = new DateInterval($vTime);
$vsec = $interval->h * 3600 + $interval->i * 60 + $interval->s;
if($vsec > 3600)
$vsec = gmdate("H:i:s", $vsec);
else
$vsec = gmdate("i:s", $vsec);
echo $vsec."--".$desc;
结果:
02:47--继广受好评的全球红极一时的X战警之后:
Youtube API V2.0 已弃用。您必须切换到 V3 API。需要 API 密钥。
所以更喜欢使用但是这样无法获取视频描述
http://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=ktt3C7nQbbA&format=json