I have a workaround for this. Please tell me if this helps.
The tokens seem to be the same for every page of the other Youtube V3 APIs, so I can use it to get all the subscription pages I need.
tokens = ['CDIQAA','CGQQAA','CJYBEAA','CMgBEAA','CPoBEAA','CKwCEAA','CN4CEAA','CJADEAA','CMIDEAA','CPQDEAA','CKYEEAA', ...]
You can use the ANOTHER Youtube API to get more page tokens if you need more. Just select one time item and write down the tokens for use in this API.
I just need to know when to stop ... so I checked when API calls do not return any feeds!
@retry(stop_max_attempt_number=7) def get_subscription_page(self, channel_id, pageToken): print 'Retrieving subscription page using Youtube API (token: %s)' % pageToken res = self.youtube_data_api.subscriptions().list(part="id,snippet,contentDetails",channelId=channel_id, maxResults=50, pageToken=pageToken).execute() return res def get_subscriptions(self, channel_id): self.authorize(channel_id) subs = [] # Tokens to deal with api bug... # https://code.google.com/p/gdata-issues/issues/detail?id=7163 tokens = ['CDIQAA','CGQQAA','CJYBEAA','CMgBEAA','CPoBEAA','CKwCEAA','CN4CEAA','CJADEAA','CMIDEAA','CPQDEAA','CKYEEAA'] iPage = 0 pageToken = '' while True: res = self.get_subscription_page(channel_id, pageToken) channelIds = [] for channel in res['items']: channelIds.append(channel.get('snippet').get('resourceId').get('channelId')) pageToken = res.get('nextPageToken') # If no next page token is returned... it might be caused by a bug. # This workaroud will only have effect when the bug still lives. if not pageToken: if not channelIds: # Workaroud for this: https://code.google.com/p/gdata-issues/issues/detail?id=7163 print ' (Workaround due to API bug) No channels returned in this API call! Finished!' break else: pageToken = tokens[iPage] # get channel info for each channel ID channelsInfo = self.get_channel_info(channelIds) subs += channelsInfo print ' Itens already retrieved: %d ' % len(subs) iPage += 1 if args.debug: break if pageToken: continue print 'No more pages to retrieve!' break return subs