如何批量删除所有YouTube评论



是否想在不删除频道的情况下快速删除整个评论历史记录?

显然,我需要最少的字符数来发布

他们更改了标签以包含完整注释,因此每个X都有不同的标签。现在只需要在X 的每个标签的开头查找单词Delete

var items = document.querySelectorAll('[aria-label~="Delete"]');
for( var x = 0; x < items.length; x++ ){
var evObj = document.createEvent('Events');
evObj.initEvent('click', true, false);
items[x].dispatchEvent(evObj);
}

在任何地方都找不到答案,所以我想分享

转到历史记录,在左侧窗格中查找注释,打开检查器并将其粘贴到控制台中。它只是通过CSS选择器获取每个"X"按钮,并为每个按钮模拟一次单击。简易

如果它不起作用,请检查他们是否在我发布这个后没有修改CSS

var items = document.querySelectorAll('[aria-label="Delete activity item"]');
for( var x = 0; x < items.length; x++ ){
var evObj = document.createEvent('Events');
evObj.initEvent('click', true, false);
items[x].dispatchEvent(evObj);
}

派对有点晚,但这是我2022年的解决方案:

function scrollDown(i) {
try {
window.scrollTo(0, document.body.scrollHeight); 
}
catch (e) {
scrollDown();
}
setTimeout(function(){
var i = i - '20'; // just to make sure we dont skip any comments while scrolling
deleteComment(i);
}, 1000);
}
function deleteComment(i) {

var xPathRes = document.evaluate ('/html/body/c-wiz/div/div[2]/c-wiz/c-wiz/div/div[2]/div[1]/div', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 
if (xPathRes) {
if (xPathRes.textContent == "Looks like you've reached the end") {
console.log("All done! Keep the page open until everything is gone including the grey date bubbles");
return;
}
}

console.log('Deleting comment: ' + i);

var xPathRes = document.evaluate ('/html/body/c-wiz/div/div[2]/c-wiz/c-wiz/div/div[1]/c-wiz[' + i + ']/div/div/div[1]/div[2]/div/button', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

var i = i + 1;
if (i > 500) {
return;
}

try {
xPathRes.singleNodeValue.click();
}
catch (e) {
scrollDown(i);
return;
}

deleteComment(i);
}

deleteComment(1);

请注意,这个脚本并不完美。我匆忙地把它编码了。如果脚本没有删除所有内容,只需再次粘贴并保持页面打开,直到所有内容都消失(处理所有请求需要一段时间(

脚本在看到";看起来你已经走到了尽头;文本

此脚本适用于:https://myactivity.google.com/page?utm_source=my-活动&hl=en&page=youtube_comments

最新更新