按频道名称获取最受欢迎的视频



我正在尝试使用YouTube 3.0 API按频道名称列出最受欢迎(或最新)的视频。

我已经实现了这个,只是不确定这样做是否正确,所以需要一个建议。

首先,我通过名称找到频道ID(例如TEDxTalks代替{channel_name}):

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

然后我得到这个频道ID的视频,由viewCount(或date)排序,它完美地列出了视频:

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channel_id}&order=viewCount&type=video&key={API_KEY}

第一个请求有多可靠?如果name是频道url段或用户名的精确匹配(例如tedxtalks),它是否总是返回相应的频道?或者是否有更可靠的方法通过其名称获取通道ID ?

谢谢。

搜索API不支持精确匹配查询。它搜索所有频道标题(在URL中找到的用户名,如果存在),频道名称(xxx添加了1个视频),甚至频道ID!

回答你的问题,不幸的是它不可靠,没有其他更可靠的方法。

一个简单的例子,尝试查询用户名"abc"。

https://www.googleapis.com/youtube/v3/search?part=snippet& maxResults = 50, q = abc&类型= channel&键= {YOUR_API_KEY}

搜索API响应将返回ABCNetwork, ABCNews, udruzenjeabc…等等......没有channelTitle(用户名)"abc"在前50项

尽管不是所有的频道都有用户名。如果您有特定频道的用户名,那么您应该使用频道API进行精确匹配查询,

https://www.googleapis.com/youtube/v3/channels?part=snippet& forUsername = abc& maxResults = 5,关键= {YOUR_API_KEY}

你可能想知道为什么YouTube API不提供"频道名称"的精确搜索(xxx添加了1个视频)?这是因为频道名不是唯一的,就像人名不是唯一的一样。

如https://developers.google.com/youtube/v3/guides/working_with_channel_ids:

所示

如果您正在使用v3,并且想要检索通道ID对应于当前授权的用户,可以调用频道。List (part="id", mine=true)方法。这个等价于请求v2中默认用户的通道配置文件。

如果你发现自己有一个任意遗留的YouTube用户名您需要使用API v3将其转换为通道ID可以做一个通道。list(part="id", forUsername="username")调用API。

如果您只知道一个显示名称,并且正在查找相应的频道,搜索。列表(="片段",一部分类型="通道",Q ="显示名称")方法将派上用场。你应该做好准备处理调用返回多个in项的可能性响应,因为显示名称不是唯一的。

最后,我不知道为什么YouTube没有强制生成一个唯一可读的用户名(就像Facebook如何在重复的用户名末尾添加一个随机数,例如zuck)。5和扎克。21)所有新用户

引用:

    https://developers.google.com/youtube/v3/docs/search/list
  1. https://developers.google.com/youtube/v3/docs/channels/list试试

  2. https://support.google.com/youtube/answer/2657968?hl=en
  3. https://developers.google.com/youtube/v3/guides/working_with_channel_ids

相关内容

  • 没有找到相关文章

最新更新