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

LookupTrack() public method

public LookupTrack ( string TrackId ) : Track
TrackId string
return BB.BL.Domain.Playlists.Track
        public Track LookupTrack(string TrackId)
        {
            var lookupRequest = youtubeService.Videos.List("contentDetails,snippet");
            lookupRequest.Id = TrackId;

            var queryResult = lookupRequest.Execute();
            foreach (var video in queryResult.Items)
            {
                var span = XmlConvert.ToTimeSpan(video.ContentDetails.Duration);
                try {
                    var track = new Track
                    {
                        Title = video.Snippet.Title.Split(new[] { " - " }, StringSplitOptions.None)[1],
                        Artist = video.Snippet.Title.Split(new[] { " - " }, StringSplitOptions.None)[0],
                        Duration = (int)span.TotalSeconds
                    };

                    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}",
                        TrackId = video.Id
                    };

                    return track;
                }
                catch 
                {
                    return null;
                }
            }

            return null;
        }