Пример #1
0
        public List <Yt_Category> GetVideoCategories(ApplicationDbContext context)
        {
            var            _list             = new List <Yt_Category>();
            YouTubeService objYouTubeService = default(YouTubeService);

            try
            {
                objYouTubeService = new YouTubeService(new BaseClientService.Initializer()
                {
                    ApiKey          = Videos.Configs.YoutubeSettings.key,
                    ApplicationName = this.GetType().ToString()
                });
            }
            catch (Exception ex)
            {
                ErrorLgBLL.Add(context, "Exception Youtube Service Init", "", ex.Message);
            }

            VideoCategoryListResponse objCategories = null;

            try
            {
                var objRequest = objYouTubeService.VideoCategories.List("id,snippet");
                objRequest.Hl         = "en_US";
                objRequest.RegionCode = "US";
                objCategories         = objRequest.Execute();
            }
            catch (Exception ex)
            {
                ErrorLgBLL.Add(context, "Exception Youtube List Request", "", ex.Message);
            }

            foreach (var obj in objCategories.Items)
            {
                _list.Add(new Yt_Category()
                {
                    ID    = obj.Id,
                    Title = obj.Snippet.Title
                });
            }
            return(_list);
        }
Пример #2
0
        private async Task <IEnumerable <VideoCategory> > GetCategoriesAsync(CancellationToken cancellationToken)
        {
            _logger.LogTrace($"{GetType()} - BEGIN {nameof(GetCategoriesAsync)}");

            try
            {
                YouTubeService ytService = await _ytServiceProvider.CreateServiceAsync(cancellationToken);

                VideoCategoriesResource.ListRequest req = ytService.VideoCategories.List(SNIPPET_PART_PARAM);
                req.Hl         = "fr_FR";
                req.RegionCode = "fr";
                VideoCategoryListResponse list = await req.ExecuteAsync(cancellationToken);

                return(list.Items.Where(cat => cat.Snippet.Assignable.GetValueOrDefault(false)));
            }
            catch (Exception e)
            {
                _logger.LogError("An error occurred while retrieving video categories", e);
                throw;
            }
        }
Пример #3
0
        public async Task Refresh(YouTubeSession session)
        {
            while (DetectedCategories.Count > 1)
            {
                (DetectedCategories as IList <VideoCategory>).RemoveAt(1);
            }

            var request = session.YouTubeService.VideoCategories.List("snippet");

            request.RegionCode = RegionInfo.CurrentRegion.TwoLetterISORegionName;
            request.Hl         = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;

            VideoCategoryListResponse result = null;
            int retry = 0;

            do
            {
                result = await request.ExecuteAsync();

                ++retry;
                if (retry == 30)
                {
                    return;
                }
            }while (result == null || result.Items == null);

            foreach (var i in result.Items)
            {
                if (i.Snippet.Assignable == false)
                {
                    continue;
                }
                VideoCategory item = new VideoCategory();
                item.Name = i.Snippet.Title;
                item.Id   = i.Id;
                (DetectedCategories as IList <VideoCategory>).Add(item);
            }
        }