static async Task <YouTubeVideoStatistics> GetVideoDetails(string videoId, string title) { YouTubeVideoStatistics videoDetails = null; using (var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = _APIKEY, })) { var searchRequest = youtubeService.Videos.List("statistics"); searchRequest.Id = videoId; var searchResponse = await searchRequest.ExecuteAsync(); var youTubeVideo = searchResponse.Items.FirstOrDefault(); if (youTubeVideo != null) { videoDetails = new YouTubeVideoStatistics() { VideoId = videoId, Title = title.Replace(',', ' '), ViewCount = youTubeVideo.Statistics.ViewCount ?? 0, LikeCount = youTubeVideo.Statistics.LikeCount ?? 0, DislikeCount = youTubeVideo.Statistics.DislikeCount ?? 0, FavoriteCount = youTubeVideo.Statistics.FavoriteCount ?? 0, CommentCount = youTubeVideo.Statistics.CommentCount ?? 0, }; } } return(videoDetails); }
static async Task <List <YouTubeVideoStatistics> > GetPlayListVideos(string playlistId) { var videoList = new List <YouTubeVideoStatistics>(); using (var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = _APIKEY, })) { var nextPageToken = ""; while (nextPageToken != null) { var searchRequest = youtubeService.PlaylistItems.List("snippet"); searchRequest.PlaylistId = playlistId; searchRequest.MaxResults = 50; searchRequest.PageToken = nextPageToken; var searchResponse = await searchRequest.ExecuteAsync(); foreach (var playlistItem in searchResponse.Items) { YouTubeVideoStatistics video = null; if (playlistItem.Snippet.Title != "Private video") { video = await GetVideoDetails(playlistItem.Snippet.ResourceId.VideoId, playlistItem.Snippet.Title); } else { video = new YouTubeVideoStatistics() { Title = playlistItem.Snippet.Title, VideoId = playlistItem.Snippet.ResourceId.VideoId }; } Console.WriteLine("- ({1}) {0}", video.Title, video.ViewCount); videoList.Add(video); } nextPageToken = searchResponse.NextPageToken; } } return(videoList); }