python - Youtube Data API v3 获取完整的 watchHistory

标签 python youtube youtube-api

我试图从 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 参数并对其进行分页,但 playlistItemListResponse 仍然受到 163 个项目的限制。

有没有办法接收完整的历史记录?另一种分页方式还是什么?

我现在最好的选择是带有用户操作仿真的基于 Selenium 的脚本。 =)

我正在使用修改后的“检索我的上传”示例:

# 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

关于python - Youtube Data API v3 获取完整的 watchHistory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28094404/

相关文章:

actionscript-3 - 无法将youtube加载到Flash中时获取FS按钮,fs = 1不起作用

api - 特定 channel 中视频的 YouTube 搜索 API 通常没有结果

php - 如何获取特定类别中点赞数超过 X 的 YouTube 视频列表

youtube-api - 某些视频类别的最受欢迎图表中没有视频

python - 使用python将json插入mysql

php - youtube嵌入视频节目 “Video Unavailable”

javascript - YouTube API 以 5 x 3 网格而不是单列列表列出播放列表图标

python - 当以追加模式打开时,文件在 python 中被覆盖

Python - 线程 - 我可以制作线程队列列表吗?

python - 通过Heroku/Git插件部署python时出现Heroku错误-“Command errored out with exit status 1”