我正在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')
有人可以给我一个错误的思路吗?
答案 0 :(得分:1)
您可以参考YouTube Data API docs来查找不同种类的公开数据,而不是使用URL语法。
对于您而言,您可能正在寻找管理PlaylistItems的方法。更具体地说,list method:
返回与API请求参数匹配的播放列表项的集合。
下面是一个示例,应该为您提供ID为id
的播放列表中每个视频的snippet
和REPLACEWITHYOURID
信息:
axios.get('https://www.googleapis.com/youtube/v3/playlistItems?playlistId=REPLACEWITHYOURID&part=snippet,id&maxResults=20')
答案 1 :(得分:0)
尝试改用以下API端点。这将返回有关播放列表而不是特定视频的数据。
在您的axios.get('')
通话中使用上述URL。将 [播放列表ID] 替换为客户端的列表ID,并将 [您的密钥] 替换为您的密钥。
注意: 另外,请确保使用您使用的密钥启用了YouTube API。您可以检查设置here。如果未启用,则会收到一条400错误消息。
查看返回的数据时,请寻找{resourceId: { videoId: 34rewt6 }}
,使用该ID并将其粘贴在https://www.youtube.com/watch?v=
的末尾。这将是视频的直接链接。
要测试您对API的调用,请查看Postman。这是一个非常好的工具,可以测试和查看返回的数据。