根据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中的订单不符。有没有人建议以不同的方式获取最近上传的视频?
答案 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个位置之一。我真的想不出别的什么。