Youtube Data API v3 获取完整的观看历史记录



我试图从YouTube转储观看历史记录,但是playlistItems().list只返回了我163个最后的视频:

{u'etag': u'"F9iA7pnxqNgrkOutjQAa9F2k8HY/6lMoi7x7VY9xj1dR34GM6rOPfMM"',
 u'items': [],
 u'kind': u'youtube#playlistItemListResponse',
 u'pageInfo': {u'resultsPerPage': 50, u'totalResults': 163},
 u'prevPageToken': u'CJYBEAE'}

我的 http://www.youtube.com/feed/history 包含的不仅仅是 163 个视频。

我尝试使用pageToken参数并对其进行分页,但是播放列表ItemListResponse仍然受到163项的限制。

有什么方法可以接收完整的历史记录吗?另一种分页方法或其他方法?

我现在最好的选择是基于硒的脚本,带有用户操作模拟。 =)

我正在使用修改的"检索我的上传"示例:

# Auth here
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
  http=credentials.authorize(httplib2.Http()))
channels_response = youtube.channels().list(mine=True, part="contentDetails")
    .execute()
for channel in channels_response["items"]:
    history_list_id = channel["contentDetails"]["relatedPlaylists"]["watchHistory"]
    playlistitems_list_request = youtube.playlistItems().list(
        playlistId=history_list_id,
        part="snippet",
        maxResults=50)
    while playlistitems_list_request:
        playlistitems_list_response = playlistitems_list_request.execute()
        for playlist_item in playlistitems_list_response["items"]:
            title = playlist_item["snippet"]["title"]
            video_id = playlist_item["snippet"]["resourceId"]["videoId"]
            print "%s (%s)" % (title, video_id)
        playlistitems_list_request = youtube.playlistItems().list_next(
            playlistitems_list_request, playlistitems_list_response)

我已经发现这个错误的某种行为:https://code.google.com/p/gdata-issues/issues/detail?id=4642

相关内容

  • 没有找到相关文章

最新更新