[PHP] [Youtube api v3]检索单个视频的信息

时间:2015-06-29 15:45:14

标签: php api video youtube

我在使用youtube api时遇到了一些问题。我想从单个视频中检索信息。

我已经得到了什么:

我可以从指定的播放列表中获取包含所有信息的视频(例如标题,说明等)

我从网址获取了id播放列表:

$playlist = $_GET['pl'];

然后我从播放列表中获取视频信息:

$response = $youtube->playlistItems->listPlaylistItems('id,snippet,contentDetails', ['playlistId' => $playlist, 'maxResults' => '10']);

然后我可以通过foreach轻松获取并显示这些视频的信息:

foreach($response['items'] as $video){
echo $video['contentDetails']['videoId']; 
echo $video['snippet']['title'];
echo substr($video['snippet']['description'], 0, 430);}

我想要的是什么:

现在我把videoId放到一个链接中:

href="index.php?requ=video&v=<?= $video['contentDetails']['videoId']; ?>&pl=<?= $playlist ?>"

这样我就可以将videoId放到我嵌入视频的另一个页面中:

$vid = $_GET['v'];
<iframe height ="432" width="760"  src="https://www.youtube.com/embed/<?= $vid; ?>"></iframe>

但问题出现了,当我尝试这样的时候,我无法从这个视频中获得任何信息:

$viewing = $youtube->videos->listVideos("snippet", ['id' => $vid]);
echo $viewing['snippet']['title'];

它返回NULL

如果有人可以帮我一点,那就太棒了

1 个答案:

答案 0 :(得分:0)

我终于找到了自己的解决方案。

因为我想从视频列表中检索信息(即使在这种情况下列表由1个元素组成),我只需要使用foreach来检索这样的信息:

<?php foreach($viewing['items'] as $view): ?>
                        <p><h3><?= $view['snippet']['title']; ?></h3></p>
                        <p><?= substr($view['snippet']['description'], 0, 430); ?></p>
                        <?php endforeach; ?>

希望它可以提供帮助