BB.BL.YouTubeTrackProvider.Search C# (CSharp) Method

Search() public method

public Search ( string q, long maxResults = 5 ) : List
q string
maxResults long
return List
        public List<Track> Search(string q, long maxResults = 5)
        {
            var result = new List<Track>();

            var searchListRequest = youtubeService.Search.List("snippet");
            searchListRequest.Q = q;
            searchListRequest.MaxResults = 20;

            var queryResult = searchListRequest.Execute();

            foreach (var video in queryResult.Items.Where(v => v.Id.Kind == "youtube#video" && v.Snippet.Title.Contains(" - ")))
            {
                if (result.Count >= maxResults) continue;

                var track = new Track
                {
                    Title = video.Snippet.Title.Split(new[] { " - " }, StringSplitOptions.None)[1],
                    Artist = video.Snippet.Title.Split(new[] { " - " }, StringSplitOptions.None)[0],
                };

                Thumbnail[] thumbnails = { video.Snippet.Thumbnails.Maxres, video.Snippet.Thumbnails.High, video.Snippet.Thumbnails.Medium, video.Snippet.Thumbnails.Default__ };
                track.CoverArtUrl = thumbnails.First(t => t != null).Url;
                track.TrackSource = new TrackSource()
                {
                    SourceType = SourceType.YouTube,
                    Url = $"https://www.youtube.com/watch?v={video.Id.VideoId}",
                    TrackId = video.Id.VideoId
                };

                result.Add(track);
            }

            return result;
        }

Usage Example

        public JsonResult SearchTrack(string q)
        {
            var youtubeProvider = new YouTubeTrackProvider();
            var searchResult = youtubeProvider.Search(q, maxResults: 3);

            return Json(searchResult, JsonRequestBehavior.AllowGet);
        }
All Usage Examples Of BB.BL.YouTubeTrackProvider::Search