3

我已经使用上一个问题探索了这个主题的大部分内容,如何使用新的 YouTube 数据 API (V3) 获取某个频道的上传视频列表?,但我想要一些基于给出的答案的细节。

是否可以使用频道的用户名而不调用搜索查询来获取频道 ID?我有一个 https 请求,可以获得如下所示的搜索列表,但是当我知道确切的频道用户名时,我宁愿不浪费 API 配额。

https://www.googleapis.com/youtube/v3/search?q={channel_username}&key={my_api_key}&part=snippet

我的 hack 只是从频道中获取一个 videoid 并从那里提取一个上传者 ID,但它并不优雅,如果上传被删除,它将无法工作。

此外,一旦我努力获取上传密钥,我怎样才能获得一个显示所有上传的 json 而不仅仅是 25 个列表?如果我必须递归调用上传页面,我该怎么做?

谢谢。

4

3 回答 3

6

I think that to get a channel, using the channel's username, the only option is to use the search, and the best strategy to minimize the use of quota is to use a cache, or save the channel ID.

For a full list of videos uploaded, as JSON, you can use contentDetails.relatedPlaylists.uploads (the ID of the playlist that contains the channel's uploaded videos) and retrieve the PlaylistItems, using pages with 50 items per page, and using the nextPageToken value to retrieve each page in the result set.

于 2013-02-18T02:27:58.163 回答
4

我找到了答案。正确的做法是使用搜索查询站点,但直接说明要响应的列表类型,实际上只搜索频道。这是由

https://www.googleapis.com/youtube/v3/search?q={search_term}&key={API_key}&type=channel&part=snippet

如您所见,类型是频道。通过使用确切频道用户名的搜索词进行搜索,您将获得一个返回列表,其中第一个 item 对象作为频道,您可以从那里存储频道 ID 和上传 ID。

于 2013-02-26T23:31:40.397 回答
0

要更新此答案,您需要识别“配额限制”。
因此,使用“ search?q=[search] ”将导致使用 100 个配额。
最好使用“ channels?part=id&forUsername={username] ”,因为只有 1 个配额。

然后你可以使用“ channels?part=id,snippet ....... &id={channel_ID] ”来获取你所有的数据

于 2017-03-09T15:21:30.753 回答