所以我想创建一个程序来获取我的整个观看历史记录,并将其放入我的观看历史记录中所有视频的列表格式(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已被弃用。有什么帮助吗?感谢。
答案 0 :(得分:5)
我不知道"一个程序。"听起来他们不再拥有API。但是你可以通过javascript控制台部分自动化它。由于youtube已更改为材料设计且历史记录页面使用无限滚动,因此以下说明适用。
转到Google Chrome中的https://www.youtube.com/feed/history并打开javascript控制台。 (其他浏览器也应该可以正常工作,但可能会略有不同。)
在javascript控制台中,您可以输入window.scrollBy(0, 100000)
自动向下滚动。我没有尝试过,但你应该能够像window.setInterval(() => window.scrollBy(0, 100000), 5000)
那样重复这样做。这应该导致每5000毫秒(5秒)向下滚动;根据您的计算机速度,您可以调整该数字。 100000是向下滚动的像素数。 (它不会滚动到页面的末尾,但是点击页面的末尾会导致它加载更多并展开页面。)
页面滚动得足够远后,请输入console.clear(); document.querySelectorAll('h3 a').forEach(x => console.log(x.innerText))
。根据当前页面标记,这将记录所有视频标题(以及其他一些行)。 (它将首先清除控制台。)注意:h3 a
部分可能会发生变化。它意味着"所有锚标签都在3级标题标记内。"此外,这条线可以调整以获得除标题之外的东西。
在控制台中单击鼠标右键,然后在上下文菜单中单击Save as...
以将刚打印的内容导出到文本文件中。
答案 1 :(得分:0)
Channels->list method将返回playlistId for the watch history。
然后您需要使用该播放列表ID调用playlistItems->list。