This question has been asked in various forms several times over the years without being properly answered. Here for instance: YouTube Data API (v3) search pagination, return "items" empty
So, I'll try again.
This call works (of course, I'm leaving out the my key): https://youtube.googleapis.com/youtube/v3/search?part=snippet&eventType=live&maxResults=50&type=video&videoCategoryId=19
It returns 50 items, it informs me that that there are 1872 total results, it provides "nextPageToken": "CDIQAA".
I then update the call to get the next 50 by using the nextPageToken: https://youtube.googleapis.com/youtube/v3/search?part=snippet&eventType=live&maxResults=50&pageToken=CDIQAA&type=video&videoCategoryId=19
Success. It returns 50 items, informs me that there are now 1853 total results, it provides "nextPageToken": "CGQQAA".
I then update the call with the new nextPageToken: https://youtube.googleapis.com/youtube/v3/search?part=snippet&eventType=live&maxResults=50&pageToken=CGQQAA&type=video&videoCategoryId=19
And I get this:
{ "kind": "youtube#searchListResponse", "etag": "hjAXlEeCVHmtkRSN4mWnxF7LlZI", "prevPageToken": "CGQQAQ", "regionCode": "US", "pageInfo": { "totalResults": 1853, "resultsPerPage": 0 }, "items": [] }
As a previous questioner speculated, perhaps the request is throttled to limit the returns. I couldn't find any documentation of this.
Thanks.