我正在尝试在我的 YouTube API 应用程序中获取给定用户的完整观看视频列表。我想把所有视频的总时长加起来。
当我从历史播放列表中获取视频列表时,API 将其限制为 50 个项目。有分页,但项目总数为 50(不只是每页);我无法使用它出现的 API 访问更多数据。
有没有什么办法可以在没有数据上限的情况下获得这个播放列表?我希望有另一种方法(使用 API)或一种无需 API 的方法。我知道 YouTube 存储了这些数据,因为我可以查看我的整个历史记录(远远超过 50 个视频)。
我正在使用这段代码:
var requestOptions = {
playlistId: playlistId,
part: 'snippet',
maxResults: 50
};
gapi.client.youtube.playlistItems.list(requestOptions);
其中 playlistId
是我从 gapi.client.youtube.channels.list
请求中获得的历史播放列表的 ID。
编辑(2017 年): 我想澄清的是,下载我自己的历史记录一直是我的意图,只是为了看看我花了多少时间观看视频。我仍然无法做到这一点。
原文由 Fsmv 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然这目前仅使用 YouTube API 是不可能的,但有一种方法(虽然稍微复杂)可以计算您的观看时间:
(使用 YouTube API Explorer 创建的代码)
注意: 您可能需要将视频 ID 列表分成更小的列表(我必须这样做),否则 API 可能会拒绝该请求。正如 [stvar 在评论中指出的那样] ID 列表的最大长度为 50,因此这是列表的最大长度。 (完全披露:我正在使用 Python 发送请求)
最好的部分是我不认为这实际上违反了任何服务条款。