我查看了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调用中?
答案 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'/>