大家好,更具体地说,谷歌的人在你的支持页面监控这个标签。我是从。net和 playlisttitems . list ("snippet,contentDetails")没有做很多与旧的RSS提要搜索。事实上,添加部分contentDetails增加了很少的价值,因为现在只有VideoID返回,但它已经是Snippet.ResourceId.VideoId
的一部分"类型":"youtube # playlistItem",bla,bla," contentDetails ": {:"videoId DLME0PsJRnk"}
为什么要添加一个只返回一位信息的"部分"?
是否支持"snippet,contentDetails(duration, publishhedat,Views)"我觉得这是一种基本的元数据(片段),大多数应用程序会想要列出给用户。当你在这里的时候,请删除这些无意义的Java参数的大小写。为什么你要把你选择的语言泄露到API中,这真的很可悲。是的,不断检查大小写拼写是否正确是令人沮丧的。
好吧,看起来你强迫"我们"建立一个videoid列表,而不是转身做更多的API调用,而我以前做的更少。这也意味着,我将不得不管理50项最大分页两次,一次播放列表,如果它超过50个视频,然后手动管理我的videosid分页列表,当我转身制作视频。列表调用。
如果我错过了All-In-One call类型的API,请告诉我,谢谢。
这是我现在的工作,让我知道如果有更好的方法
// 20150802
public async Task<List<YouTubeInfo>> PlaylistVideosInfo(String PlaylistID)
{
var YoutubeService = YouTubeService();
//
List<YouTubeInfo> VideoInfos = new List<YouTubeInfo>();
//
var NextPageToken = "";
while (NextPageToken != null)
{
//
var SearchListRequest = YoutubeService.PlaylistItems.List("snippet");
SearchListRequest.PlaylistId = PlaylistID;
SearchListRequest.MaxResults = 50;
SearchListRequest.PageToken = NextPageToken;
// Call the search.list method to retrieve results matching the specified query term.
var SearchListResponse = await SearchListRequest.ExecuteAsync();
// Collect Video IDs from this page
var VideoIDsBatch = new List<string>(); // batch Video detail search by 50 max
foreach (var searchResult in SearchListResponse.Items)
{
VideoIDsBatch.Add(searchResult.Snippet.ResourceId.VideoId);
}
// Make API call for this batch - expect a single page :(
var VideoListRequest = YoutubeService.Videos.List("snippet,contentDetails");
VideoListRequest.Id = String.Join(",", VideoIDsBatch);
VideoListRequest.MaxResults = 50;
var VideoListResponse = await VideoListRequest.ExecuteAsync();
// Collect each Video details
foreach (var VideoResult in VideoListResponse.Items)
{
YouTubeInfoAdd(VideoInfos, VideoResult);
}
// request next page
NextPageToken = SearchListResponse.NextPageToken;
}
// Return All Videos' detail
return VideoInfos;
}