/// <summary> /// Retrieves Videos Feeds from YouTube using API KEY. /// </summary> /// <returns></returns> public List <SearchResult> RetriveVideosUsingAPIKey(string searchTerm) { var youtube = new YouTubeService(new BaseClientService.Initializer()); SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); listRequest.Fields = "items(id,snippet(title, description, publishedAt, thumbnails, channelId, channelTitle))"; listRequest.Key = API_KEY; listRequest.Type = ResourceTypes.Video; listRequest.MaxResults = MAX_RESULTS_PER_PAGE; if (!string.IsNullOrEmpty(PUBLISHED_FROM_DATE)) { listRequest.PublishedAfter = DateTime.ParseExact(PUBLISHED_FROM_DATE, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); } if (!string.IsNullOrEmpty(LOCATION)) { listRequest.Location = LOCATION; } if (!string.IsNullOrEmpty(LOCATION_RADIUS)) { listRequest.LocationRadius = LOCATION_RADIUS; } listRequest.Q = searchTerm; listRequest.Order = SearchResource.ListRequest.OrderEnum.Date; SearchListResponse searchResponse = listRequest.Execute(); List <SearchResult> results = new List <SearchResult>(); results.AddRange(searchResponse.Items); string nextPageToken = searchResponse.NextPageToken; int amountWithoutChannelTitle = 0; int amountWithoutChannelId = 0; while (searchResponse.Items.Count == MAX_RESULTS_PER_PAGE && !string.IsNullOrEmpty(nextPageToken)) { foreach (var item in searchResponse.Items) { if (string.IsNullOrEmpty(item.Snippet.ChannelTitle)) { amountWithoutChannelTitle++; } if (string.IsNullOrEmpty(item.Snippet.ChannelId)) { amountWithoutChannelId++; } } listRequest.PageToken = nextPageToken; searchResponse = listRequest.Execute(); results.AddRange(searchResponse.Items); nextPageToken = searchResponse.NextPageToken; } return(results); }
/// <summary> /// Retrieves Videos Feeds from YouTube using OAuth 2.0. /// </summary> /// <returns></returns> public List <SearchResult> RetriveVideosUsingOAuth(string searchTerm) { String serviceAccountEmail = OAUTH_SERVICE_ACCOUNT_EMAIL; var certificate = new X509Certificate2(OAUTH_LOCAL_KEY_FILE, OAUTH_PASSWORD, X509KeyStorageFlags.Exportable); ServiceAccountCredential credential = new ServiceAccountCredential( new ServiceAccountCredential.Initializer(serviceAccountEmail) { Scopes = new[] { YouTubeService.Scope.YoutubeReadonly } }.FromCertificate(certificate)); // Create the service. var service = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "YouTube API Sample", }); SearchResource.ListRequest listRequest = service.Search.List("snippet"); listRequest.Fields = "items(id,snippet(title, description, publishedAt, thumbnails, channelId, channelTitle))"; listRequest.Type = ResourceTypes.Video; listRequest.MaxResults = MAX_RESULTS_PER_PAGE; if (!string.IsNullOrEmpty(PUBLISHED_FROM_DATE)) { listRequest.PublishedAfter = DateTime.ParseExact(PUBLISHED_FROM_DATE, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); } if (string.IsNullOrEmpty(LOCATION)) { listRequest.Location = LOCATION; } if (string.IsNullOrEmpty(LOCATION_RADIUS)) { listRequest.LocationRadius = LOCATION_RADIUS; } listRequest.Q = searchTerm; listRequest.Order = SearchResource.ListRequest.OrderEnum.Date; SearchListResponse searchResponse = listRequest.Execute(); List <SearchResult> results = new List <SearchResult>(); results.AddRange(searchResponse.Items); string nextPageToken = searchResponse.NextPageToken; while (searchResponse.Items.Count == MAX_RESULTS_PER_PAGE) { listRequest.PageToken = nextPageToken; searchResponse = listRequest.Execute(); results.AddRange(searchResponse.Items); nextPageToken = searchResponse.NextPageToken; } return(results); }
public List <SearchResultCustomized> SearchYoutubeVideo(string keyword) { //Construyendo el servicio de Youtube YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer() { ApiKey = "AIzaSyA-HQVqE6Smy-oBBk9RPrYx7jL1VwYMXTI" }); SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); listRequest.Q = keyword; listRequest.MaxResults = 6; SearchListResponse searchResponse = listRequest.Execute(); IList <SearchResult> searchResults = searchResponse.Items; List <SearchResultCustomized> searchResultCustomizeds = new List <SearchResultCustomized>(); foreach (var item in searchResults.ToList()) { SearchResultCustomized searchResultCustomized = new SearchResultCustomized(); searchResultCustomized.VideoId = item.Id.VideoId; searchResultCustomized.Title = item.Snippet.Title; searchResultCustomized.ImageURL = item.Snippet.Thumbnails.Default__.Url; searchResultCustomizeds.Add(searchResultCustomized); } return(searchResultCustomizeds); }
public List <Videos> ObtenerVideos(string name) { List <Videos> videos = new List <Videos>(); YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer { ApiKey = "AIzaSyBhqe3OaIZT7RusiHlV_kBL3z2CExG3Vb4", ApplicationName = "Rockola-264715" }); SearchResource.ListRequest searchListRequest = youtube.Search.List("snippet"); searchListRequest.Q = name; searchListRequest.MaxResults = 40; SearchListResponse searchListResponse = searchListRequest.Execute(); foreach (var item in searchListResponse.Items) { if (item.Id.Kind == "youtube#video") { videos.Add(new Videos { ID = item.Id.VideoId, Nombre = item.Snippet.Title, Url = "https://www.youtube.com/embed/" + item.Id.VideoId, Thumbnail = "http://img.youtube.com/vi/" + item.Id.VideoId + "/hqdefault.jpg" }); } } return(videos); }
public override List <VideoHosting> Parse() { var youtubeService = new YouTubeService(new BaseClientService.Initializer { ApplicationName = "Youtube parser", ApiKey = "AIzaSyCtrxWvxLLF33phNIi6TTWjekgG9NiLpsw", }); int maxResults = 20; SearchResource.ListRequest searchListByKeywordRequest = youtubeService.Search.List("snippet"); searchListByKeywordRequest.MaxResults = maxResults; searchListByKeywordRequest.Q = GetUrlLink(); searchListByKeywordRequest.Type = "video"; searchListByKeywordRequest.RelevanceLanguage = "ru"; SearchListResponse response = searchListByKeywordRequest.Execute(); var result = response.Items.Select(t => new VideoHosting { NameVideo = t.Snippet.Title, NameHosting = HostNames.Youtube, Time = DateTime.Now }).ToList(); return(result); }
public VideosEntry SearchVideos(string query) { SearchResource.ListRequest listRequest = _service.Search.List("snippet"); listRequest.Q = query; listRequest.MaxResults = 5; listRequest.Type = "video"; SearchListResponse resp = listRequest.Execute(); List <VideoInfo> pool = new List <VideoInfo>(); foreach (var result in resp.Items) { pool.Add(new VideoInfo { id = result.Id.VideoId, title = result.Snippet.Title, thumbnail = result.Snippet.Thumbnails.Default__.Url }); } VideosEntry videos = new VideosEntry { selected = pool[0], pool = pool }; return(videos); }
private static SearchListResponse SearchYoutube(string search, string appName, int maxResults, string searchType) { try { //Check to see if the token is null or white space if (string.IsNullOrWhiteSpace(Config.bot.Apis.ApiYoutubeKey)) { return(null); } SearchListResponse youtubeSearch; using (YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer { ApiKey = Config.bot.Apis.ApiYoutubeKey, ApplicationName = appName })) { SearchResource.ListRequest searchListRequest = youtube.Search.List("snippet"); searchListRequest.Q = search; searchListRequest.MaxResults = maxResults; searchListRequest.Type = searchType; youtubeSearch = searchListRequest.Execute(); } return(youtubeSearch); } catch { return(null); } }
/** * Request Youtube Api for movie trailer * **/ private string getTrailer(dynamic original_title, dynamic release_date) { var search = ""; // Creation of string to search for trailer on Youtube try { search = original_title + " official trailer " + Convert.ToDateTime(release_date).Year; } catch (FormatException) { search = original_title + " official trailer "; } YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer() { ApiKey = _movieConfig.YtApiKey }); SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); listRequest.Q = search; // search term listRequest.Type = "video"; listRequest.MaxResults = 1; // I decided to keep the first result as the chosen one to associate with the movie SearchListResponse searchResponse = listRequest.Execute(); // Handle possible occurrence of no results if (searchResponse.Items.Count == 0) { return(""); } return(searchResponse.Items[0].Id.VideoId); }
public void SearchForVideosByTitle(string searchValue, int maxResultCount) { SearchResource.ListRequest searchListRequest = client.Search.List("snippet"); searchListRequest.Q = searchValue; searchListRequest.MaxResults = maxResultCount; SearchListResponse searchListResponse = searchListRequest.Execute(); List <string> videos = new List <string>(); List <string> channels = new List <string>(); List <string> playlists = new List <string>(); foreach (SearchResult searchResult in searchListResponse.Items) { switch (searchResult.Id.Kind) { case "youtube#video": videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId)); break; case "youtube#channel": channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId)); break; case "youtube#playlist": playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId)); break; } } Console.WriteLine(String.Format("Videos:\n{0}\n", string.Join("\n", videos))); Console.WriteLine(String.Format("Channels:\n{0}\n", string.Join("\n", channels))); Console.WriteLine(String.Format("Playlists:\n{0}\n", string.Join("\n", playlists))); }
public String generateRandomVideos(bool onlyOne) { if (onlyOne) { log.Debug("Cache is empty; generating video..."); } else { log.Debug(String.Format("Cache currently contains {0} items; refilling to {1}...", randomCache.Count, PluginSettings.Default.YoutubeCacheSize)); } while (randomCache.Count < PluginSettings.Default.YoutubeCacheSize) { try { log.Debug("Generating a random video..."); VideosResource.ListRequest request = youtubeService.Videos.List("snippet"); request.Fields = "items(id,snippet/title)"; request.Chart = VideosResource.ListRequest.ChartEnum.MostPopular; request.MaxResults = 40; log.Debug("Fetching list of most popular videos..."); VideoListResponse response = request.Execute(); int count = response.Items.Count; Video first = response.Items[random.Next(count)]; String id = first.Id; log.Debug("Picked \"" + first.Snippet.Title + "\" as my starting point."); for (int i = 0; i < PluginSettings.Default.YoutubeIterations; i++) { SearchResource.ListRequest relatedRequest = youtubeService.Search.List("snippet"); relatedRequest.Fields = "items(id,snippet/title)"; relatedRequest.Type = "video"; relatedRequest.RelatedToVideoId = id; relatedRequest.SafeSearch = SearchResource.ListRequest.SafeSearchEnum.None; relatedRequest.MaxResults = 20; SearchListResponse relatedResponse = relatedRequest.Execute(); count = relatedResponse.Items.Count; SearchResult result = relatedResponse.Items[random.Next(count)]; id = result.Id.VideoId; log.Debug("Next link: " + result.Snippet.Title); } log.Debug("Found my random video!"); String url = "https://youtu.be/" + id; if (onlyOne) { return(url); } log.Debug("Adding to cache..."); randomCache.Enqueue(url); } catch (Exception e) { log.Error("Failed in generating a video.", e); } } return(null); }
private SearchListResponse GetSearch(string query) { SearchResource.ListRequest listRequest = youTubeService.Search.List("snippet"); listRequest.Q = query; listRequest.MaxResults = 1; SearchListResponse search = listRequest.Execute(); return(search); }
private static async Task RunYoutubeSearch() { try { Console.Write("Searching YouTube for new videos... "); var youtube = new YouTubeService(new BaseClientService.Initializer() { ApplicationName = ConfigurationManager.AppSettings["YoutubeApiAppName"], ApiKey = ConfigurationManager.AppSettings["YoutubeApiToken"] }); SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); listRequest.ChannelId = ConfigurationManager.AppSettings["YoutubeChannelId"]; listRequest.MaxResults = 5; listRequest.Order = SearchResource.ListRequest.OrderEnum.Date; listRequest.Type = "video"; SearchListResponse resp = listRequest.Execute(); DateTime mostRecent = DateTime.MinValue.ToUniversalTime(); var youtubeRootDir = Path.Combine(Environment.CurrentDirectory, string.Format("data/youtube/")); var channelSubscribersPath = Path.Combine(youtubeRootDir, string.Format("{0}.txt", listRequest.ChannelId)); CreateIfMissing(Path.Combine(Environment.CurrentDirectory, string.Format("data/youtube/"))); if (File.Exists(channelSubscribersPath)) { var dateStr = File.ReadAllText(channelSubscribersPath); long ticks = long.Parse(dateStr); mostRecent = DateTime.SpecifyKind(new DateTime(ticks), DateTimeKind.Utc); } Console.WriteLine("Done."); var newItems = resp.Items.Where( obj => obj.Snippet.PublishedAt.HasValue && obj.Snippet.PublishedAt.Value > mostRecent) .ToList(); if (newItems.Any()) { Console.WriteLine("Found New Videos! Notifying clients."); var latestEp = newItems.OrderByDescending(obj => obj.Snippet.PublishedAt.Value) .FirstOrDefault(); File.WriteAllText(channelSubscribersPath, latestEp.Snippet.PublishedAt.Value.Ticks.ToString()); await NotifyChats(newItems); } } catch (Exception ex) { // No nothing, just don't crash the app if service is down, or some unknown error. Console.WriteLine(ex.ToString()); } }
public string GetVideoUrl(string search, bool IsEmbedded) { AddListRequestProperties(search); SearchListResponse resp = _listRequest.Execute(); if (resp.Items.Count > 0) { _result = resp.Items[0]; return(ReturnGenericYoutubeUrl(IsEmbedded) + _result.Id.VideoId.ToString()); } return(""); }
public List <Content> FindContent(string q, int maxResults) { var contentist = new List <Content>(); try { //https://developers.google.com/youtube/v3/code_samples/dotnet?hl=pt#search_by_keyword SearchResource.ListRequest listRequest = youTubeService.Search.List("snippet"); listRequest.Q = q; listRequest.Order = SearchResource.ListRequest.OrderEnum.Relevance; listRequest.Type = "video"; //listRequest.RegionCode = "BRA"; //TODO: reginalizar listRequest.MaxResults = maxResults; SearchListResponse searchResponse = listRequest.Execute(); foreach (SearchResult searchResult in searchResponse.Items) { contentist.Add(new Content { ContentType = ContentType.YoutubeVideo, Created = DateTime.Now, Data = searchResult.Id.VideoId, Idiom = "PT-BR", //TODO Modificated = DateTime.Now, Thumbnail = GetThumbNail(searchResult.Snippet.Thumbnails), Title = searchResult.Snippet.Title, Description = searchResult.Snippet.Description, }); } } catch (Exception ex) { //TODO: Melhorar essa verificação, precisa pera a exceptions correta e verificar se é uma System.Net.HttpStatusCode.Forbidden if (ex.Message.Contains("The request cannot be completed because you have exceeded your")) { LogManager.Warning($"A cota de consumo do youtube foi excedida para a chave {_serviceKey}"); throw new Exception("Cota excedida"); } else { throw ex; } } return(contentist); }
/// <summary> /// Search video for Imdb /// </summary> /// <param name="parameters">Search parameters</param> /// <returns>Returns an instance of VideSearchResponse which contains video search result or error information </returns> public VideoSearchResponse SearchVideo(VideoSearchRequest parameters) { if (parameters == null) { return(null); } if (string.IsNullOrWhiteSpace(parameters.SearchQuery)) { return(null); } VideoSearchResponse response = new VideoSearchResponse(); this.RunSafely(() => { var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = YOUTUBE_API_URL }); SearchResource.ListRequest searchListRequest = youtubeService.Search.List(YOUTUBE_SEARCH_SNIPPET); searchListRequest.Q = parameters.SearchQuery; searchListRequest.MaxResults = parameters.MaxResult; searchListRequest.VideoType = SearchResource.ListRequest.VideoTypeEnum.Movie; searchListRequest.Type = YOUTUBE_SEARCH_TYPE; SearchListResponse searchListResponse = searchListRequest.Execute(); VideoItem temp = null; VideoItemCollection items = new VideoItemCollection(); YouTubeAdapter youTubeDataADapter = new YouTubeAdapter(); if (searchListResponse != null) { foreach (SearchResult eachItemFromYouTubeService in searchListResponse.Items) { temp = youTubeDataADapter.ToVideoItem(eachItemFromYouTubeService); items.Add(temp); } } response.Success(items); }, (ex) => { response.Error("YoutubeVideoProvider_SearchVideo", ex.Message, false); }); return(response); }
private List <SearchResult> SearchYouTube(string input, int max = 10) { List <SearchResult> searchResults = new List <SearchResult>(); var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = _configuration["YouTubeApiKey"], ApplicationName = GetType().ToString() }); SearchResource.ListRequest listRequest = youtubeService.Search.List("snippet"); listRequest.Q = input; listRequest.MaxResults = max; listRequest.Type = "video"; SearchListResponse response = listRequest.Execute(); return(response.Items.ToList()); }
/// <summary> /// Search in YouTube and returns a dictionary containing Titles of Music Videos and the Video Url. /// </summary> /// <param name="searchQuery"> Search string to use for the search query. </param> /// <returns></returns> public Dictionary <string, string> SearchVideos(string searchQuery) { YouTubeService youtubeService = new YouTubeService(new BaseClientService.Initializer { ApiKey = youtubeApiKey, ApplicationName = $"YouTubeCustomSearchEngine" }); SearchResource.ListRequest searchListRequest = youtubeService.Search.List("snippet"); searchListRequest.Q = searchQuery; searchListRequest.Type = "video"; searchListRequest.MaxResults = _maxSearchResults; searchListRequest.VideoCategoryId = "10"; searchListRequest.EventType = SearchResource.ListRequest.EventTypeEnum.None; SearchListResponse searchListResponse = searchListRequest.Execute(); return(GetYouTubeSearchResults(searchListResponse)); }
public string GetVideoUrl(string search, bool IsEmbedded) { SearchResult result; SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); listRequest.Q = search + "trailer"; listRequest.MaxResults = 1; listRequest.Type = "video"; SearchListResponse resp = listRequest.Execute(); if (resp.Items.Count > 0) { result = resp.Items[0]; return(ReturnGenericYoutubeUrl(IsEmbedded) + result.Id.VideoId.ToString()); } return(""); }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { PlaybackContext context = _spotify.GetPlayingTrack(); webView.Dispatcher.Invoke(() => { if (context.Error == null) { if (context.Item.Error == null) { String songName = context.Item.Name; String artistName = context.Item.Artists[0].Name; if (_currentSong != songName) { _currentSong = songName; SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); listRequest.MaxResults = 1; listRequest.Type = "video"; listRequest.Q = songName + " - " + artistName; listRequest.VideoEmbeddable = SearchResource.ListRequest.VideoEmbeddableEnum.True__; //listRequest.VideoSyndicated = SearchResource.ListRequest.VideoSyndicatedEnum.True__; SearchListResponse resp = listRequest.Execute(); string videoID = resp.Items[0].Id.VideoId; string startTime = (context.ProgressMs / 1000).ToString(); if (Spotify.GetSetVolume() != 0) { _volume = Spotify.GetSetVolume(); } Spotify.GetSetVolume(0); YoutubePlayer(videoID, startTime); } } else { System.Diagnostics.Debug.WriteLine("Inside- " + context.Error.Message); } } else { System.Diagnostics.Debug.WriteLine("Outside- " + context.Error.Message); } }); }
private bool SearchYouTube(YouTubeSearchRequest searchRequest) //================================================================================================================ // Search YouTube based on the given search request and populate the request with search results // // Parameters // searchRequest: YouTube search request data // // Retruns // True/False, has the YouTube data limit been exceeded //================================================================================================================ { bool dataLimitReached = false; string googleAPIKey = RetrieveGoogleAPIKey(); try { // Create and initialize the YouTube API YouTubeService youTube = new YouTubeService( new BaseClientService.Initializer() { ApiKey = googleAPIKey, ApplicationName = this.GetType().ToString() }); // Build a search request for the selected category SearchResource.ListRequest youtubeRequest = youTube.Search.List("snippet"); youtubeRequest.Q = searchRequest.SearchPhrase; youtubeRequest.Type = "video"; youtubeRequest.MaxResults = searchRequest.MaxResults; // Search YouTube and parse the results SearchListResponse searchResults = youtubeRequest.Execute(); ParseYouTubeSearchResults(searchRequest, searchResults); SaveYouTubeSearchResults(searchRequest); } catch (Exception runError) { if (runError.Source == GOOGLE_ERROR_SOURCE) { dataLimitReached = true; } } return(dataLimitReached); }
public VideoInfo SearchVideo(string query) { SearchResource.ListRequest listRequest = _service.Search.List("snippet"); listRequest.Q = query; listRequest.MaxResults = 1; listRequest.Type = "video"; SearchListResponse resp = listRequest.Execute(); foreach (var result in resp.Items) { //Console.WriteLine("{0}, {1}", result.Snippet.Title, result.Id.VideoId); return(new VideoInfo { id = result.Id.VideoId, title = result.Snippet.Title }); } return(new VideoInfo()); }
private static (bool, string) ValidateChannelId(string channelId) { try { SearchResource.ListRequest listRequest = YoutubeModuleService.YoutubeS.Search.List("snippet"); listRequest.ChannelId = channelId; listRequest.Type = "video"; listRequest.Order = SearchResource.ListRequest.OrderEnum.Date; listRequest.MaxResults = 1; var request = listRequest.Execute(); return(true, request.Items.FirstOrDefault().Snippet.ChannelTitle); } catch (Exception ex) { Log.Verbose(ex + ex.Message); return(false, null); } }
public string SearchVideo(string artist, string song) { SearchResource.ListRequest searchRequest = this.youTubeService.Search.List("snippet"); searchRequest.Q = $"{artist} {song}"; SearchListResponse searchResponse = searchRequest.Execute(); foreach (var item in searchResponse.Items) { switch (item.Id.Kind) { case "youtube#video": return(item.Id.VideoId); } } return(null); }
public ActionResult Search(string search) { var youTubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = key }); SearchResource.ListRequest listRequest = youTubeService.Search.List("snippet"); listRequest.Q = search; listRequest.Order = SearchResource.ListRequest.OrderEnum.Relevance; SearchListResponse searchResponse = listRequest.Execute(); List <dynamic> videos = new List <dynamic>(); List <dynamic> channels = new List <dynamic>(); List <dynamic> playlists = new List <dynamic>(); List <dynamic> all = new List <dynamic>(); foreach (SearchResult searchResult in searchResponse.Items) { switch (searchResult.Id.Kind) { case "youtube#video": videos.Add(new { Criado = searchResult.Snippet.PublishedAt, Tipo = "video", Titulo = searchResult.Snippet.Title, Id = searchResult.Id.VideoId, Descricao = searchResult.Snippet.Description, Foto = searchResult.Snippet.Thumbnails.Medium.Url }); all.Add(new { Criado = searchResult.Snippet.PublishedAt, Tipo = "video", Titulo = searchResult.Snippet.Title, Id = searchResult.Id.VideoId, Descricao = searchResult.Snippet.Description, Foto = searchResult.Snippet.Thumbnails.Medium.Url }); break; case "youtube#channel": channels.Add(new { Criado = searchResult.Snippet.PublishedAt, Tipo = "canal", Titulo = searchResult.Snippet.Title, Id = searchResult.Id.ChannelId, Descricao = searchResult.Snippet.Description, Foto = searchResult.Snippet.Thumbnails.Medium.Url }); all.Add(new { Criado = searchResult.Snippet.PublishedAt, Tipo = "canal", Titulo = searchResult.Snippet.Title, Id = searchResult.Id.ChannelId, Descricao = searchResult.Snippet.Description, Foto = searchResult.Snippet.Thumbnails.Medium.Url }); break; case "youtube#playlist": playlists.Add(new { Criado = searchResult.Snippet.PublishedAt, Tipo = "playlist", Titulo = searchResult.Snippet.Title, Id = searchResult.Id.PlaylistId, Descricao = searchResult.Snippet.Description, Foto = searchResult.Snippet.Thumbnails.Medium.Url }); all.Add(new { Criado = searchResult.Snippet.PublishedAt, Tipo = "playlist", Titulo = searchResult.Snippet.Title, Id = searchResult.Id.PlaylistId, Descricao = searchResult.Snippet.Description, Foto = searchResult.Snippet.Thumbnails.Medium.Url }); break; } } return(Ok(all)); }
public async Task YoutubeTestCommand() { SearchResource.ListRequest listRequest = YoutubeModuleService.YoutubeS.Search.List("snippet"); listRequest.ChannelId = "UCmeds0MLhjfkjD_5acPnFlQ"; listRequest.Type = "video"; listRequest.EventType = SearchResource.ListRequest.EventTypeEnum.Live; listRequest.Order = SearchResource.ListRequest.OrderEnum.Date; listRequest.MaxResults = 1; SearchListResponse searchResponse = listRequest.Execute(); Google.Apis.YouTube.v3.Data.SearchResult data = searchResponse.Items.FirstOrDefault(v => v.Id.Kind == "youtube#video"); string currentVideo = data.Id.VideoId; if (_latestVideo != currentVideo) { await ReplyAsync($"https://youtu.be/{data.Id.VideoId}").ConfigureAwait(false); } _latestVideo = currentVideo; }
private void GetResults() { YouTubeService ys = new YouTubeService(new BaseClientService.Initializer() { ApiKey = YoutubeHook.ApiKey, ApplicationName = "Butler-YoutubeViewer" }); SearchResource.ListRequest req = new SearchResource.ListRequest(ys, "snippet") { Q = searchQ, MaxResults = 50 }; SearchListResponse resp = req.Execute(); _results = resp.Items.Where(itm => itm.Id.Kind == "youtube#video").ToList(); Dispatcher.Invoke(UpdateItems); }
public override string GetVideoUrl(string i_SongName) { YouTubeService youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApplicationName = this.GetType().ToString(), ApiKey = k_YoutubeApiKey, }); SearchResource.ListRequest listRequest = youtubeService.Search.List("snippet"); listRequest.Q = i_SongName; listRequest.MaxResults = 1; listRequest.Type = "video"; SearchListResponse resp = listRequest.Execute(); string videoUrl = r_VideoWatchUrl + resp.Items[0].Id.VideoId; m_SongLink = videoUrl; return(videoUrl); }
//For returning the youtube link based on movie title public string YoutubeRun(string title) { string link = ""; YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer() { //ApplicationName = " "; ApiKey = YOUTUBE_API_KEY, } ); SearchResource.ListRequest listRequest = youtube.Search.List("id"); listRequest.Q = title; listRequest.MaxResults = 1; listRequest.Type = "video"; SearchListResponse resp = listRequest.Execute(); foreach (SearchResult result in resp.Items) { link = "https://www.youtube.com/v/" + result.Id.VideoId + "?version=3"; } return(link); }
public List <string> SearchForVideosByChannel(string searchValue, int maxResultsCount) { SearchResource.ListRequest searchListRequest = client.Search.List("snippet"); // searchListRequest.Q = searchValue; searchListRequest.MaxResults = maxResultsCount; searchListRequest.ChannelId = searchValue; searchListRequest.Type = "video"; searchListRequest.Fields = "description"; SearchListResponse searchListResponse = searchListRequest.Execute(); List <string> videos = new List <string>(); List <string> channels = new List <string>(); List <string> playlists = new List <string>(); foreach (SearchResult searchResult in searchListResponse.Items) { switch (searchResult.Id.Kind) { case "youtube#video": videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId)); break; case "youtube#channel": channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId)); break; case "youtube#playlist": playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId)); break; } } return(videos); }
public async Task <SearchResultViewModel> Search(string searchText, string pageToken) { SearchResource.ListRequest listRequest = youTubeDataApiService.Search.List("snippet"); listRequest.Q = searchText; listRequest.Order = SearchResource.ListRequest.OrderEnum.Relevance; listRequest.SafeSearch = SearchResource.ListRequest.SafeSearchEnum.None; listRequest.RegionCode = "BR"; listRequest.RelevanceLanguage = "PT-BR"; listRequest.Type = "video"; listRequest.MaxResults = 10; listRequest.PageToken = pageToken; SearchListResponse searchResponse = listRequest.Execute(); List <Models.Video> videos = new List <Models.Video>(); foreach (SearchResult searchResult in searchResponse.Items) { var video = new Models.Video() { Id = searchResult.Id.VideoId, Title = searchResult.Snippet.Title, Description = searchResult.Snippet.Description, Url = searchResult.Snippet.Thumbnails.Medium.Url }; videos.Add(video); await SaveVideo(video); } return(new SearchResultViewModel() { nextPageToken = searchResponse.NextPageToken, prevPageToken = searchResponse.PrevPageToken, Videos = await LoadPlaylistsInVideo(videos), Playlists = await repository.PlaylistList() }); }