如何从youtube获取所有手表历史记录?

时间:2014-05-12 02:54:45

标签: youtube youtube-api history

所以我想创建一个程序来获取我的整个观看历史记录,并将其放入我的观看历史记录中所有视频的列表格式(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已被弃用。有什么帮助吗?感谢。

2 个答案:

答案 0 :(得分:5)

我不知道"一个程序。"听起来他们不再拥有API。但是你可以通过javascript控制台部分自动化它。由于youtube已更改为材料设计且历史记录页面使用无限滚动,因此以下说明适用。

  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部分可能会发生变化。它意味着"所有锚标签都在3级标题标记内。"此外,这条线可以调整以获得除标题之外的东西。

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

答案 1 :(得分:0)

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

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