public static async Task <YTVideoDetailsRequestResults> GetVideoDetails(string videoId) { if (YouTubeAPIKey != String.Empty) { CheckYouTubAPIKey(); RegisterRequest(RequestNames.GetVideoDetails); string response = await YouTubeServiceProxies.GetVideoDetails(videoId); if (String.IsNullOrEmpty(response)) { return(null); } YTVideoDetailsRequestResults results = await YouTubeJsonParser.ParseVideoDetails(response); RemoveRequest(RequestNames.GetVideoDetails); return(results); } else { throw new YouTubeException() { Source = "YouTubeServices.GetPlaylistDetails - API Key cannot be null" }; } }
public static async Task <YTVideoDetailsRequestResults> ParseVideoDetails(string jsonData) { return(await Task.Factory.StartNew(() => { YTVideoDetailsRequestResults videoDetails; dynamic dynamicData = JsonConvert.DeserializeObject(jsonData); videoDetails = new YTVideoDetailsRequestResults() { Kind = dynamicData.kind, Etag = dynamicData.etag, PageInfo = new YTPageInfoModel() { TotalResults = dynamicData.totalResults, ResultsPerPage = dynamicData.resultsPerPage }, Items = new List <YTVideoDetailsContentDetails>() }; foreach (var item in dynamicData.items) { YTVideoDetailsContentDetails details = new YTVideoDetailsContentDetails() { Kind = item.kind, Etag = item.etag, Id = item.id, Snippet = new YTSnipperModel() { PublishedAt = item.snippet.publishedAt, ChannelId = item.snippet.channelId, Title = item.snippet.title, Description = item.snippet.description, Thumbnails = new List <YTThumbnailModel>(), ChannelTitle = item.snippet.channelTitle, CategoryId = item.snippet.categoryId, LiveBroadcastContent = item.snippet.liveBroadcastContent } }; YTThumbnailModel mediumThumbnail = new YTThumbnailModel() { ThumbnailSize = YTEnums.ThumbnailSizes.medium, Url = item.snippet.thumbnails.medium.url, Width = item.snippet.thumbnails.medium.width, Height = item.snippet.thumbnails.medium.height }; YTThumbnailModel highThumbnail = new YTThumbnailModel() { ThumbnailSize = YTEnums.ThumbnailSizes.high, Url = item.snippet.thumbnails.medium.url, Width = item.snippet.thumbnails.medium.width, Height = item.snippet.thumbnails.medium.height }; YTThumbnailModel standardThumbnail = new YTThumbnailModel() { ThumbnailSize = YTEnums.ThumbnailSizes.standard, Url = item.snippet.thumbnails.medium.url, Width = item.snippet.thumbnails.medium.width, Height = item.snippet.thumbnails.medium.height }; YTThumbnailModel maxresThumbnail = new YTThumbnailModel() { ThumbnailSize = YTEnums.ThumbnailSizes.maxres, Url = item.snippet.thumbnails.medium.url, Width = item.snippet.thumbnails.medium.width, Height = item.snippet.thumbnails.medium.height }; details.Snippet.Thumbnails.Add(mediumThumbnail); details.Snippet.Thumbnails.Add(highThumbnail); details.Snippet.Thumbnails.Add(standardThumbnail); details.Snippet.Thumbnails.Add(maxresThumbnail); videoDetails.Items.Add(details); } return videoDetails; })); }