如何使用 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
的播放列表中每个视频的 id
和 snippet
信息:
axios.get('https://www.googleapis.com/youtube/v3/playlistItems?playlistId=REPLACEWITHYOURID&part=snippet,id&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?