我正在尝试使用YouTube api v3查找荷兰语YouTube频道。 我找到了荷兰语指南类别Aanbevolen' (推荐)ID =' GCRmVhdHVyZWQ'。
当我调用频道资源时,我得到英文结果。我期待荷兰语的结果,因为我选择了荷兰语指南类别。
我错过了什么?
YouTubeService service = new YouTubeService(new BaseClientService.Initializer() { ApplicationName = "MyApp", ApiKey = "[mykey]" });
ChannelsResource.ListRequest resource = new ChannelsResource.ListRequest(service, "id,snippet");
resource.CategoryId = "GCRmVhdHVyZWQ";
resource.MaxResults = 50;
ChannelListResponse result;
result = resource.Execute();
答案 0 :(得分:2)
搜索YouTube指南类别(自动生成)可让您指定语言和区域代码;但是,这并不意味着结果与频道的语言有任何关系。相反,它是特定国家/地区中特定类别可用的指示符(并且类别标题仅根据语言参数进行翻译)。换句话说,如果您使用regionCode参数设置为NL进行guideCategories搜索,则您将获得授权在荷兰显示的所有类别。无论区域代码如何,您都会获得相同的类别ID,因为该类别ID只是YouTube上的通用"特色"类别。
所以这基本上是对guideCategories端点如何工作的误解。
目前还没有办法从特定地区或特定语言获取频道,但这是获取视频的好方法来自特定区域(显然可能会引导您进入频道)。 videos-> list endpoint具有您可以设置为" mostPopular,"的图表参数。然后还播放regionCode和videoCategory参数,以返回特定类别中特定区域的最热门视频(请注意,视频类别与指南类别不同,因为用户可以设置自己的视频类别)。例如,像这样的URL:
https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostPopular®ionCode=NL&videoCategoryId=17&key={YOUR_API_KEY}
将返回荷兰最受欢迎的体育视频(因为第17类是"体育"的类别)。我将留给您将该端点转换为c#客户端的正确对象方法。
另请注意,您可以通过类似于获取指南类别的方式获取区域中可用的所有视频类别:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&hl=nl®ionCode=NL&key={YOUR_API_KEY}