【问题标题】:How to get all your watch history from youtube?如何从 youtube 获取所有观看记录?
【发布时间】:2014-05-12 02:54:44
【问题描述】:

所以我想创建一个程序来获取我的整个观看历史记录并将其放入我的观看历史记录中的所有视频的列表格式(excel 或 html 列表)及其标题和链接。

虽然我是新手,所以我可能需要花钱请别人来做,但我想知道这是否可能以及如何完成它,以防我想自己尝试。

https://google-developers.appspot.com/youtube/2.0/developers_guide_protocol_watch_history?hl=ar-SA

v2.0 的 API 列出了如何执行此操作,但我不确定这是否适用于 3.0,因为 2.0 已被弃用。请问有什么帮助吗?谢谢。

【问题讨论】:

    标签: youtube youtube-api history


    【解决方案1】:

    我不知道“程序”。听起来他们不再有它的 API。但是您可以通过 javascript 控制台对其进行部分自动化。自从 youtube 更改为 Material Design 并且历史页面使用无限滚动后,以下说明适用。

    1. 在 Google Chrome 中转到 https://www.youtube.com/feed/history 并打开 JavaScript 控制台。 (其他浏览器应该也可以,但可能会有细微差别。)

    2. 在 javascript 控制台中,您可以通过输入 window.scrollBy(0, 100000) 自动向下滚动。我还没有尝试过,但是您应该可以使用window.setInterval(() => window.scrollBy(0, 100000), 5000) 之类的方法反复执行此操作。这应该会导致每 5000 毫秒(5 秒)向下滚动一次;根据您计算机的速度,您可以调整该数字。 100000 是向下滚动的像素数。 (它不会滚动到页面末尾,但点击页面末尾会导致加载更多内容并展开页面。)

    3. 页面滚动到足够远后,输入console.clear(); document.querySelectorAll('h3 a').forEach(x => console.log(x.innerText))。根据当前页面标记,这将记录所有视频标题(以及其他几行)。 (它将首先清除控制台。) 注意:h3 a 部分可能会发生变化。它的意思是“三级标题标签内的所有锚标签”。此外,可以调整此行以获取标题以外的内容。

    4. 右键单击控制台并在上下文菜单中单击 Save as... 将刚刚打印的内容导出到文本文件中。

    【讨论】:

    • 我刚刚试了一下,效果很好,但是不知道一旦脚本到达底部,如何在firefox中停止脚本。我不需要保存它,我现在只想自己经历一下。
    【解决方案2】:

    Channels->list method 将返回 playlistId for the watch history

    然后您需要使用该播放列表ID 调用playlistItems->list

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-31
      • 2018-04-09
      • 2021-01-09
      • 2020-11-22
      • 2016-03-19
      • 1970-01-01
      • 2011-09-03
      相关资源
      最近更新 更多