예제 #1
0
        public async Task GetChannelVideosAsyncPaged()
        {
            string channelId = "UCJFp8uSYCjXOMnkUyb3CQ3Q";

            int targetCount   = 250;
            int receivedCount = 0;

            string             nextPageToken    = "";
            List <ChannelItem> allChannelVideos = new List <ChannelItem>();

            do
            {
                string result = await VideosProvider.GetChannelVideosAsync(channelId, ChannelPartParams.Default, "", nextPageToken);

                ChannelSearchResponse channelSearchResponse = ChannelSearchResponse.FromString(result);
                if (targetCount > channelSearchResponse.pageInfo.totalResults)
                {
                    targetCount = channelSearchResponse.pageInfo.totalResults;
                }
                nextPageToken = channelSearchResponse.nextPageToken;
                List <ChannelItem> items = channelSearchResponse.items;
                receivedCount += items.Count;
                if (items.Any())
                {
                    allChannelVideos.AddRange(items);
                }
            } while (string.IsNullOrEmpty(nextPageToken) || receivedCount < targetCount);
            Console.WriteLine(allChannelVideos);
            Debugger.Break();
        }
예제 #2
0
        public async Task GetChannelVideosAsync()
        {
            string channelId = "UCJFp8uSYCjXOMnkUyb3CQ3Q";
            string result    = await VideosProvider.GetChannelVideosAsync(channelId);

            ChannelSearchResponse channelSearchResponse = ChannelSearchResponse.FromString(result);
            List <ChannelItem>    items = channelSearchResponse.items;

            Console.WriteLine(items);
            LoggingManager.CreateFile("GetChannelVideosAsync.txt", channelSearchResponse.Serialize());
            Debugger.Break();
        }