如何使用 Youtube API 访问特定播放列表中的所有视频?

Posted

技术标签:

【中文标题】如何使用 Youtube API 访问特定播放列表中的所有视频?【英文标题】:How do I access all videos in a particular playlist with the Youtube API? 【发布时间】:2019-01-02 14:32:01 【问题描述】:

我正在为一位音乐家开发 React 网站,我想制作一个页面来显示他的音乐的 Youtube 视频。他创建了一个他想要包含的视频播放列表。我可以单独访问视频,但我想对其进行设置,以便他添加到该播放列表的任何视频都可以通过 API 访问并显示在他的网站上。

对于个别视频,我使用 Axios 从该网址获取视频:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=<My ID>&key=<My Key>

然后在渲染方法中,我从状态解构“视频”,然后映射到“视频”,将其返回到 iframe 元素中,如下所示:

<iframe src=https://www.youtube.com/embed/$videos.id></iframe>

我一直在使用我的 GET url 的语法来尝试获取播放列表,目前我的 GET 上的状态代码为 400,所以我需要从那时开始。这就是我现在拥有的用于获取播放列表的 URL:

axios.get('https://www.googleapis.com/youtube/v3/search?key=<My Key>&list=<Playlist ID>&part=snippet,id&order=date&maxResults=20')

有人可以告诉我我将如何以错误的方式解决这个问题吗?

【问题讨论】:

仅供参考,在网址中我没有将“key=”和“list=”留空,我只是不想公开发布它们。 当 Youtube 播放列表有超过 50 个视频时。请查看以下有关retrieving all videos from a youtube playlist 的问题。您可能需要进行额外的检查和 API 调用才能获取完整列表。 【参考方案1】:

你可以参考YouTube Data API docs来查找不同类型的暴露数据,而不是玩弄URL语法。

就您而言,您可能正在寻找管理PlaylistItems。更具体地说,list method:

返回与 API 请求参数匹配的播放列表项的集合。

这是一个示例,可以为您提供 ID REPLACEWITHYOURID 的播放列表中每个视频的 idsnippet 信息:

axios.get('https://www.googleapis.com/youtube/v3/playlistItems?playlistId=REPLACEWITHYOURID&amp;part=snippet,id&amp;maxResults=20')

【讨论】:

【参考方案2】:

尝试改用以下 API 端点。这将返回有关播放列表而不是特定视频的数据。

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId=[playlist-id]&key=[your-key]

在您的axios.get('') 通话中使用上述网址。将 [playlist-id] 替换为您的客户端的列表 ID,将 [your-key] 替换为您的密钥。

注意: 此外,请确保使用您使用的密钥启用了 YouTube API。您可以检查您的设置here。如果未启用,您将收到 400 错误消息。

当您查看返回的数据时,查找 resourceId: videoId: 34rewt6 使用该 ID 并将其粘贴到 https://www.youtube.com/watch?v= 的末尾,这将是视频的直接链接。

要测试您对 API 的调用,请查看 Postman。这是一个非常好的工具来测试和查看返回的数据。

【讨论】:

不客气,我很高兴听到你修复了它。如果您能将此答案标记为已接受,我将不胜感激。谢谢!

以上是关于如何使用 Youtube API 访问特定播放列表中的所有视频?的主要内容,如果未能解决你的问题,请参考以下文章

是否有适用于 iOS 的 RESTful YouTube API?

当访问者来自特定站点时自动播放 YouTube 视频?

如何从列表视图访问 youtube 视频

使用 YouTube API 列出从新西兰上传的纪录片视频

如何在 React Native 中登录 YouTube 帐户以访问私人播放列表

使用 YouTube API v3 将视频上传到特定的 PREDETERMINED 帐户