如何在一次 API 调用中从多个 YouTube 频道请求最近的视频



我已经浏览了YouTube API文档,但据我所知,没有办法有效地从多个YouTube频道请求信息(例如最近上传的视频列表)。

据我了解,需要做的第一件事是获取每个YouTube频道"上传"播放列表的播放列表ID。

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY}

然后使用之前检索到的播放列表ID获取上传的视频。

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY}

每个通道有两个请求,如果只是一个或两个通道就可以了,但对于数百个通道则不然。

如何有效地将所有这些请求分组到一个 API 调用中?

您可以使用 YouTube

数据 API 支持批处理,您可以在一次 API 调用中请求多个 YouTube 频道Batch Processing允许您使用single API request执行多达 50 个操作,而不是为每个单独的操作提交单独的请求。一个批处理请求可以组合多个查询(GET)、插入(POST)、更新(PUT)和删除(DELETE)操作。每个操作都包含在请求中的一个标记中。

要提交批处理请求,请将POST请求发送到批处理 URL。每个源都有自己的批处理 URL,当您向该URL提交请求时,您可以对该源中的任何条目执行 API 操作。源的批处理网址显示在 rel 属性值为 http://schemas.google.com/g/2005#batch<link> 标记中。该代码是该 Feed 的代码的子代码。

<feed xmlns='http://www.w3.org/2005/Atom' ...>
<id>https://gdata.youtube.com/feeds/users/USER_ID/playlists</id>
...
<link rel='http://schemas.google.com/g/2005#batch'
type='application/atom+xml'
href='https://gdata.youtube.com/feeds/api/users/USER_ID/playlists/batch?v=2'/>