nextPageToken
是 YouTube Data API 中用于分页获取结果的一个参数。当请求返回的数据量超过单次请求的限制时,YouTube API 会提供一个 nextPageToken
,用于在下一次请求中获取下一页的数据。
nextPageToken
:用于获取下一页的数据。prevPageToken
:用于获取上一页的数据。nextPageToken
进行分页。nextPageToken
分页显示评论。nextPageToken
变为无效原因:
nextPageToken
过期或被重置。nextPageToken
失效。确保在 nextPageToken
过期之前及时使用它进行下一次请求。
import requests
def fetch_videos(api_key, playlist_id, page_token=None):
url = f"https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId={playlist_id}&key={api_key}"
if page_token:
url += f"&pageToken={page_token}"
response = requests.get(url)
data = response.json()
if 'nextPageToken' in data:
next_page_token = data['nextPageToken']
videos = data['items']
# 处理当前页的视频数据
process_videos(videos)
# 递归获取下一页
fetch_videos(api_key, playlist_id, next_page_token)
else:
print("No more pages.")
def process_videos(videos):
for video in videos:
print(video['snippet']['title'])
# 示例调用
fetch_videos('YOUR_API_KEY', 'PLAYLIST_ID')
监控 API 调用频率,避免超过限制。可以使用指数退避算法重试请求。
import time
def fetch_with_retry(api_key, playlist_id, page_token=None, retries=3):
for i in range(retries):
try:
return fetch_videos(api_key, playlist_id, page_token)
except Exception as e:
if i == retries - 1:
raise e
time.sleep(2 ** i) # 指数退避
# 示例调用
fetch_with_retry('YOUR_API_KEY', 'PLAYLIST_ID')
在获取下一页数据之前,检查原始数据是否发生变化,并相应地处理。
def fetch_videos_with_check(api_key, playlist_id, page_token=None):
url = f"https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId={playlist_id}&key={api_key}"
if page_token:
url += f"&pageToken={page_token}"
response = requests.get(url)
data = response.json()
if 'nextPageToken' in data:
next_page_token = data['nextPageToken']
videos = data['items']
# 处理当前页的视频数据
process_videos(videos)
# 检查数据是否发生变化
if check_data_integrity(videos):
# 递归获取下一页
fetch_videos_with_check(api_key, playlist_id, next_page_token)
else:
print("Data integrity check failed. Stopping further fetches.")
else:
print("No more pages.")
def check_data_integrity(videos):
# 实现数据完整性检查逻辑
return True # 示例返回值
# 示例调用
fetch_videos_with_check('YOUR_API_KEY', 'PLAYLIST_ID')
通过以上方法,可以有效处理 nextPageToken
变为无效的问题,确保数据的连续性和完整性。
没有搜到相关的文章