public static string GetVideoId(Core.MediaItem item) { var url = new Uri(item.Location); var result = HttpUtility.ParseQueryString(url.Query).Get("v"); return(result); }
//TODO writing a async sync method for what i get from youtube vs that i generate myself as playlist public async Task <IList <Core.MediaItem> > GetVideo(string videoId) { var result = new List <Core.MediaItem>(); var youtubeService = await GetService(); var request = youtubeService.Videos.List("snippet,contentDetails"); request.Id = videoId; var response = await request.ExecuteAsync(); foreach (var item in response.Items) { var nextPageToken = ""; while (nextPageToken != null) { var video = new Core.MediaItem { Title = item.Snippet.Title, Location = $"{_videoBaseUrl}{videoId}", Duration = XmlConvert.ToTimeSpan(item.ContentDetails.Duration).Ticks, PrivacyStatus = (item.ContentDetails.CountryRestriction?.Allowed ?? true) ? (int)PrivacyStatus.None : (int)PrivacyStatus.Restricted, }; result.Add(video); nextPageToken = response.NextPageToken; } } return(result); }
public UrlParseResult(IMapleLog log, Core.MediaItem item, ParseResultType type) : this(log, type) { MediaItems = new List <Core.MediaItem>() { item }; Log(); }