来自频道的视频未显示YouTube Data API

时间:2017-08-24 18:20:38

标签: c# .net youtube-api youtube-data-api

根据this我应该在这里提出这个问题

我正在尝试获取最新的频道上传内容(ExplosmEntertainment)。我正在调用PlaylistItemsResource.ListRequest(一直有效):

PlaylistItemsResource.ListRequest listRequest = service.PlaylistItems.List("snippet");
listRequest.PlaylistId = "UUWXCrItCF6ZgXrdozUS-Idw";
listRequest.MaxResults = 1;
PlaylistItemListResponse response = listRequest.Execute();
PlaylistItemSnippet newUploadDetails = response.Items.FirstOrDefault().Snippet;

问题是,newUploadDetails列出了此视频:https://www.youtube.com/watch?v=PSHg-U4s-6c作为最新上传的内容,而如果您访问实际的uploads playlist,则会显示以下视频:https://www.youtube.com/watch?v=FHK4N8QLtBQ。< / p>

由于这段代码到目前为止一直对我有用,这似乎是这个视频和API的一个问题,但有什么我做错了吗?

编辑:

此频道昨晚(17/24/17)上传了一个新视频,我修改了我的代码:

PlaylistItemsResource.ListRequest listRequest = service.PlaylistItems.List("snippet");
listRequest.PlaylistId = "UUWXCrItCF6ZgXrdozUS-Idw";
listRequest.MaxResults = 5;
PlaylistItemListResponse response = listRequest.Execute();
List<PlaylistItem> fiveRecent = response.Items.ToList();

@paolo建议可能结果是缓存的,这就是我所看到的,但在我的fiveRecent列表中,列表如下:

因此,这些结果显示response.Items未按发布日期排序。不幸的是,there doesn't seem to be OrderBy参数与other APIs and their list methods中的某些参数类似。

这与API Explorer提供的顺序相同

我很奇怪这个订单与actual playlist on YouTube中的订单不符。有没有人建议以不同的方式获取最近上传的视频?

1 个答案:

答案 0 :(得分:2)

  

我很奇怪这个订单与YouTube上实际播放列表中的顺序不匹配

同样在这里。人们肯定会期待这一点。

好的,当我这样做时:

{{#> (lookup . 'type') }}<!-- Return Nothing if Undefined -->{{/undefined}}

我明白了:

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&fields=items/snippet/publishedAt%2Citems/snippet/position%2Citems/snippet/title&maxResults=5&playlistId=UUWXCrItCF6ZgXrdozUS-Idw&key=API_KEY HTTP/1.2

订单和时间与您提供的相同,只是GMT而不是PDT。但这也表明这些项目是按{ "items": [ { "snippet": { "publishedAt": "2017-08-25T04:30:00.000Z", "title": "Ow, My Dick: The Aftermath - A Cyanide & Happiness True Story", "position": 0 }, "contentDetails": { "videoId": "SxYyTOgWBDI" } }, { "snippet": { "publishedAt": "2017-08-22T05:00:00.000Z", "title": "X-Ray - Cyanide & Happiness Minis", "position": 1 }, "contentDetails": { "videoId": "PSHg-U4s-6c" } }, { "snippet": { "publishedAt": "2017-08-14T05:00:00.000Z", "title": "Explosm Presents: Channelate - Drinkin' Alone", "position": 2 }, "contentDetails": { "videoId": "e-cbR0JwgsA" } }, { "snippet": { "publishedAt": "2017-08-24T05:00:00.000Z", "title": "High Noon - Cyanide & Happiness Shorts", "position": 3 }, "contentDetails": { "videoId": "FHK4N8QLtBQ" } }, { "snippet": { "publishedAt": "2017-08-17T05:00:01.000Z", "title": "Final Words - Cyanide & Happiness Shorts", "position": 4 }, "contentDetails": { "videoId": "fczItbbB-OA" } } ] } 排序的 - 理论上它应该与position类似。

由于不是,我建议提取播放列表的前几个,比如10或15个项目,并按日期排序。然后祈祷实际的最新视频是前X个位置之一。我真的想不出别的什么。