如何在一次API通话中请求来自多个YouTube频道的近期视频?

时间:2016-05-23 14:02:46

标签: php youtube-api youtube-data-api

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

根据我的理解,首先需要做的是获取"上传的播放列表ID"每个YouTube频道的播放列表。

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调用中?

1 个答案:

答案 0 :(得分:1)

您可以使用Batch Processing YouTube Data API支持批量处理,在一次API通话中请求多个YouTube频道,并使用single API request执行最多50次操作,而不是提交单独的请求对于每个单独的操作。批处理请求可以组合多个查询(GET),插入(POST),更新(PUT)和删除(DELETE)操作。每个操作都包含在请求中的标记内。

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