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;
}