PHP调用YouTube Data API 获取播放列表中视频ID及URL的方法问询
问题原因
你调用的YouTube Data API v3的playlistItems接口返回结构中:
$item->id是当前播放列表条目的唯一ID,并非你需要的关联视频ID- 关联视频ID实际存储在
$item->snippet->resourceId->videoId路径下,用你原本的part=snippet参数就可以直接获取,不需要额外调整接口请求参数
修复方案
将你新增的代码替换为以下内容即可获取视频ID:
<h4><?php echo $item->snippet->resourceId->videoId; ?></h4>
如果需要直接输出完整播放链接,可以使用以下代码:
<h4><a href="https://www.youtube.com/watch?v=<?php echo $item->snippet->resourceId->videoId; ?>" target="_blank"><?php echo $item->snippet->title; ?></a></h4>
修改后完整可用代码参考
<?php $api_key = "MY_API_KEY"; $playlist_id = "MY_PLAYLIST_ID"; $api_url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId='. $playlist_id . '&key=' . $api_key; $playlist = json_decode(file_get_contents($api_url)); ?> <ul> <?php foreach($playlist->items AS $item): $video_id = $item->snippet->resourceId->videoId; ?> <li> <img src="<?php echo $item->snippet->thumbnails->default->url; ?>"> <h4><?php echo $item->snippet->title; ?></h4> <p>视频ID:<?php echo $video_id; ?></p> <p>播放地址:<a href="https://www.youtube.com/watch?v=<?php echo $video_id; ?>" target="_blank">https://www.youtube.com/watch?v=<?php echo $video_id; ?></a></p> </li> <?php endforeach; ?> </ul>
内容的提问来源于stack exchange,提问作者karma
相关产品推荐
相关产品推荐

