是否想在不删除频道的情况下快速删除整个评论历史记录?
显然,我需要最少的字符数来发布
他们更改了标签以包含完整注释,因此每个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