【问题标题】:How do I access all videos in a particular playlist with the Youtube API?如何使用 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 调用才能获取完整列表。

标签: javascript reactjs youtube-api axios


【解决方案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。这是一个非常好的工具来测试和查看返回的数据。

    【讨论】:

    • 不客气,我很高兴听到你修复了它。如果您能将此答案标记为已接受,我将不胜感激。谢谢!
    猜你喜欢
    • 2012-11-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2015-08-20
    • 2013-03-18
    • 2016-09-01
    相关资源
    最近更新 更多