API-интерфейс поиска YouTube v3 не работает должным образом с токеном следующей страницы - PullRequest
0 голосов
/ 29 октября 2019

У меня есть пара идентификаторов каналов, и я пытаюсь получить все видео, загруженные каждым каналом.

Так что я использую API YouTube youach для загрузки видео по каналу.

В одном случае я получил общий результат по каналу в виде 1400, сообщая мне общее количество видео, загруженных каналом, и дает мне 50 видео для каждого запроса, который я делаю с токеном следующей страницы, после пары запросов с токенами страницы я получаюВ моем ответе 0 элементов с токеном следующей страницы и общим количеством видео, которые я получил до этого, около 299.

Я не понимаю, почему я получаю токен следующей страницы с элементами в виде пустого массива ([])

Неправильно ли я использую API, или API поиска имеет какие-либо проблемы?

Код:

for account in accounts:

            channelid = account
            try:
                    request = youtube.search().list(
                            part="snippet",
                            pageToken=pageToken,
                            maxResults=50,
                            channelId= channelid)
                    response = request.execute()
            except Exception as e:
                print(e)
                print("error for account " + account)
                continue

            videos = response.get("items", 0)
            videosToken = response.get("nextPageToken", 0)
            resultsInfo = response.get("pageInfo")
            resultsCount = resultsInfo.get("totalResults")
            if(videos):
                callVideos(videos, account)

            if(len(videos) == 0):
                continue
            while(videosToken):
                request = youtube.search().list(
                    part="snippet",
                    maxResults=50,
                    pageToken=videosToken,
                    channelId= channelid)
                response = request.execute()
                videos = response.get("items", 0)
                videosToken1 = response.get("nextPageToken", 0)
                if(videos and len(videos) > 0):
                    callVideos(videos, account)
                    videosToken = response.get("nextPageToken", 0)
                else:
                    break

Я получаю значения токена, но количество элементов равно 0, что не соответствуетсмысл

...