Example #1
0
        public static string GetVideoId(Data.MediaItem item)
        {
            var url    = new Uri(item.Location);
            var result = HttpUtility.ParseQueryString(url.Query).Get("v");

            return(result);
        }
Example #2
0
        //TODO writing a async sync method for what i get from youtube vs that i generate myself as playlist

        public async Task <IList <Data.MediaItem> > GetVideo(string videoId)
        {
            var result         = new List <Data.MediaItem>();
            var youtubeService = await GetService().ConfigureAwait(false);

            var request = youtubeService.Videos.List("snippet,contentDetails");

            request.Id = videoId;

            var response = await request.ExecuteAsync()
                           .ConfigureAwait(false);

            foreach (var item in response.Items)
            {
                var nextPageToken = "";
                while (nextPageToken != null)
                {
                    var video = new Data.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);
        }
Example #3
0
        public UrlParseResult(ILoggingService log, Data.MediaItem item, ParseResultType type)
            : this(log, type)
        {
            MediaItems = new List <Data.MediaItem>()
            {
                item
            };

            Log();
        }