我正在尝试从 YouTube 播放列表中删除所有重复项,但在运行几秒钟后不断收到错误消息,是命令错误吗?如果有人可以修复我的命令,这样我就不必每次都向下滚动来加载更多内容,以便它在找到所有内容后向下滚动,而不是加载播放列表的其余部分并继续?这将是一个很大的帮助!
这是命令
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function $$(selector, context = document.documentElement) {
return [...context?.querySelectorAll?.(selector) ?? []]
};
async function removeduplicates() {
let titles = $$("#primary a#video-title")
.filter((i, j, k) =>
k.findIndex(k =>
k.href.includes(Object.fromEntries(new URLSearchParams(i.href))['https://www.youtube.com/watch?v'])) !== j);
for (let i = 0; i < titles.length; i++) {
titles[i].focus();
titles[i].closest("#contents > *").querySelector('button[aria-label="Action menu"]').click();
await sleep(100);
var things = document.evaluate('//span[contains(text(),"Remove from")]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
await sleep(300);
for (var j = 0; j < things.snapshotLength; j++) {
things.snapshotItem(j).click();
}
console.log(titles[i].innerText);
}
}
removeduplicates();
这是错误
资源 https://i.ytimg.com/generate_204 已使用链接预加载 预加载,但在窗口加载后几秒钟内未使用 事件。请确保它具有适当的
值并且它是 故意预加载的。as
尝试使其能够在找到我的 Youtube 播放列表中的所有重复歌曲后向下滚动,而不是加载播放列表的其余部分并继续 编辑:现在它给了我这个错误 DevTools failed to load source map: Could not load content for https://www.youtube.com/s/desktop/6ca9d352/jsbin/web-animations-next-lite.min.vflset /web-animations-next-lite.min.js.map:HTTP 错误:状态代码 404,net::ERR_HTTP_RESPONSE_CODE_FAILURE
function scrolldown() {
setTimeout(
function(){
window.scrollBy(0,1000);
scrolldown();
}, 1000)
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function $$(selector, context = document.documentElement) {
return [...context?.querySelectorAll?.(selector) ?? []]
};
async function removeduplicates() {
scrolldown()
let titles = $$("#primary a#video-title")
.filter((i, j, k) =>
k.findIndex(k =>
k.href.includes(Object.fromEntries(new URLSearchParams(i.href))['https://www.youtube.com/watch?v'])) !== j);
for (let i = 0; i < titles.length; i++) {
titles[i].focus();
titles[i].closest("#contents > *").querySelector('button[aria-label="Action menu"]').click();
await sleep(100);
var things = document.evaluate('//span[contains(text(),"Remove from")]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
await sleep(300);
for (var j = 0; j < things.snapshotLength; j++) {
things.snapshotItem(j).click();
}
console.log(titles[i].innerText);
}
}
removeduplicates();
在removeduplicates()中添加了scrolldown()函数