Как получить ID больше, чем у 50 видео?

232
08 марта 2018, 08:46

Здравствуйте! Пытаюсь получить идентификаторы более, чем у 50 роликов, используя nextPageToken. Но проблема в том, что каждый раз в переменную ids добавляются и идентификаторы с предыдущей итерации - их становится больше 50 - и выполнение запроса крашится. Есть разумные способы как это предотвратить? По итогу необходимо получить все видео по ключевому слову.

public async Task<ActionResult> Parse(string keyword)
    {
        var youtubeService = new YouTubeService(new BaseClientService.Initializer()
        {
            ApiKey = "myapikey"
        });
        var nextPageToken = "";
        string part = "snippet, statistics";
        string ids = string.Empty;
        StringBuilder sb = new StringBuilder();
        var videos = new List<Video>();

        while (nextPageToken != null)
        {
            var videosListMultipleIdsRequest = youtubeService.Videos.List(part);
            var searchListRequest = youtubeService.Search.List("snippet");
            searchListRequest.Q = keyword; // Replace with your search term.
            searchListRequest.MaxResults = 50;
            searchListRequest.PageToken = nextPageToken;
            var searchListResponse = await searchListRequest.ExecuteAsync();
            foreach (var searchResult in searchListResponse.Items)
            {
                if (searchResult.Id.Kind.Equals("youtube#video"))
                {
                    ids = sb.Append($"{searchResult.Id.VideoId},").ToString();
                }
            }
            ids = ids.Remove(ids.Length - 1);
            if (!string.IsNullOrEmpty(ids))
            {
                videosListMultipleIdsRequest.Id = ids;
            }
            var response = await videosListMultipleIdsRequest.ExecuteAsync();
            foreach (var item in response.Items)
            {
                videos.Add(item);
            }
            ids = string.Empty;
            nextPageToken = searchListResponse.NextPageToken;
        }
        ViewBag.Videos = videos;
        return View();
    }
READ ALSO
Передача данных из класса в textBox

Передача данных из класса в textBox

Есть программа которая сравнивает строки по датеНеобходимо чтобы в textBox отображался процесс работы программы, а именно выводились найденные...

256
Поиск и вывод данных из list C#

Поиск и вывод данных из list C#

Имеется таблица xlsx с тремя столбцами, из нее через программу необходимо найти значения "ВНИМАНИЕ" из первого столбца и вывести список с прилегающими...

246
Авторизация на C# при помощи базы данных mongoDB

Авторизация на C# при помощи базы данных mongoDB

Добрый вечерПомогите разобраться! Есть проект MVC где база данных на mongoDB

269
Исключение CaptchaNeedException не обрабатывается (авторизация ВК, C#, библиотека VkNet)

Исключение CaptchaNeedException не обрабатывается (авторизация ВК, C#, библиотека VkNet)

Делаю авторизацию ВК библиотекой VkNetПо идее при необходимости ввести капчу выбрасывается VkNet

252