private YoutubeAPIModel SearchCore(string Query, string RelatedToVideoId, string NextPageToken) { var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = WebConfigurationManager.AppSettings["YoutubeAPIKey"], ApplicationName = "trailer" }); var searchListRequest = youtubeService.Search.List("snippet"); searchListRequest.MaxResults = 20; searchListRequest.Type = "video"; if (Query != null && !Query.Equals("")) { searchListRequest.Q = Query; } if (NextPageToken != null && !NextPageToken.Equals("")) { searchListRequest.PageToken = NextPageToken; } if (RelatedToVideoId != null && !RelatedToVideoId.Equals("")) { searchListRequest.RelatedToVideoId = RelatedToVideoId; } var searchListResponse = searchListRequest.Execute(); YoutubeAPIModel results = new YoutubeAPIModel(); results.Query = Query; results.NextPageToken = searchListResponse.NextPageToken; List <YoutubeAPIModelItem> videos = new List <YoutubeAPIModelItem>(); foreach (var searchResult in searchListResponse.Items) { switch (searchResult.Id.Kind) { case "youtube#video": YoutubeAPIModelItem item = new YoutubeAPIModelItem(); item.Title = searchResult.Snippet.Title; item.YoutubeVideoId = searchResult.Id.VideoId; item.ChannelTitle = searchResult.Snippet.ChannelTitle; item.ChannelId = searchResult.Snippet.ChannelId; item.ThumbnailUrl = searchResult.Snippet.Thumbnails.High.Url; item.Description = searchResult.Snippet.Description; videos.Add(item); break; } } results.Videos = videos; return(results); }
public YoutubeAPIModel Search([FromBody] YoutubeAPIModel input) { if (input == null || input.Query == null) { input = new YoutubeAPIModel(); input.Query = "trailer"; } if (!input.Query.Contains("trailer")) { input.Query += " trailer"; } YoutubeAPIModel response = youtubeAPIService.SearchQuery(input); return(response); }
public YoutubeAPIModel RelatedVideos(YoutubeAPIModel input) { return(SearchCore(null, input.RelatedToVideoId, input.NextPageToken)); }
public YoutubeAPIModel SearchQuery(YoutubeAPIModel input) { return(SearchCore(input.Query, null, input.NextPageToken)); }