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

时间:2018-07-25 17:22:36

标签: javascript reactjs youtube-api axios

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

对于单个视频,我正在使用Axios从此URL获取视频:

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

然后在render方法中,解构状态为“视频”的视频,然后映射到“视频”,并在iframe元素中将其返回,如下所示:

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

我一直在尝试获取GET网址的语法以尝试获取播放列表,目前我在GET上获取的状态代码为400,因此我需要从这一点开始。这就是我现在要获取网址以获取播放列表的网址:

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

有人可以给我一个错误的思路吗?

2 个答案:

答案 0 :(得分:1)

您可以参考YouTube Data API docs来查找不同种类的公开数据,而不是使用URL语法。

对于您而言,您可能正在寻找管理PlaylistItems的方法。更具体地说,list method

  

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

下面是一个示例,应该为您提供ID为id的播放列表中每个视频的snippetREPLACEWITHYOURID信息:

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

答案 1 :(得分:0)

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

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

在您的axios.get('')通话中使用上述URL。将 [播放列表ID] 替换为客户端的列表ID,并将 [您的密钥] 替换为您的密钥。

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

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

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