我正在尝试从 YouTube 播放列表中删除所有重复项,但在工作几秒钟后不断收到错误消息,是命令错误吗

问题描述 投票:0回答:1

我正在尝试从 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

javascript youtube-api
1个回答
0
投票
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()函数

© www.soinside.com 2019 - 2024. All rights reserved.