YouTube API - 检索超过 5000 个项目

2024-01-07

我只想获取所有我喜欢的视频 ~25k 项。据我的研究表明,通过 YouTube v3 API 是不可能实现这一点的。

我已经发现多个问题(issue https://stackoverflow.com/questions/56389215/how-to-retrieve-large-amounts-of-data-5000-videos-from-youtube-data-api-v3, issue https://stackoverflow.com/questions/19369632/youtube-api-how-to-retrieve-more-than-1000-comments)关于同样的问题,虽然有些人声称已经解决了这个问题,但它只对他们有效,因为他们喜欢的视频列表中没有

playlistItems 列表 API 端点 https://developers.google.com/youtube/v3/docs/playlistItems/list播放列表 ID 设置为“喜欢的视频”(LL) 有一个限额 5000.

视频列表 API 端点 https://developers.google.com/youtube/v3/docs/videos/list has a 限额 1000.

不幸的是,这些端点没有向我提供可以用来对请求进行分页的参数(例如,给我日期 x 和 y 之间所有喜欢的视频),所以我被迫接受提供的订单(我不能获得超过 5000 个条目)。

我是否可以通过 API 获取我所有的点赞?


对@Yarin_007 的回复有更多想法

  • 时间线中是否有已删除的视频它们显示为“喜欢 https://...url” https://i.stack.imgur.com/oMZkr.jpg,该脚本不喜欢这种格式,并且由于底层元素与现有视频的结构不同而失败 可以通过 try catch 轻松修复
function collector(all_cards) { 
    var liked_videos = {};
    all_cards.forEach(card => {
        try {
            // ignore Dislikes
            if (card.innerText.split("\n")[1].startsWith("Liked")) {
                ....
            }
        }
        catch {
            console.log("error, prolly deleted video")
        }
    })

    return liked_videos;
}
  • 要向下滚动到页面底部,我使用了这个简单的脚本,无需启动大的东西
var millisecondsToWait = 1000;
setInterval(function() {
    window.scrollTo(0, document.body.scrollHeight);
    console.log("scrolling")
}, millisecondsToWait);
  • 当更多人想要检索此类数据时,可以考虑构建一个更方便使用的合适脚本。如果您检查网络请求 https://i.stack.imgur.com/b5lDv.jpg您可以在称为batchexecute的请求响应中找到所需的数据。人们可以复制其中一个的身份验证,将它们提供给一个脚本,该脚本查询这些端点并准备数据,就像我当前手动注入的另一个脚本一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YouTube API - 检索超过 5000 个项目 的相关文章

随机推荐