找回密码
 注册免广告
搜索
免绑卡永久免费服务器 🌐Neverless 交易所熊猫速汇 50 元券 🔥MyFin 5 欧元羊毛 🔥
人人必备的 Wise 💳英、德、香港转运 📦,送 $25最便宜的 eSIM 流量手机号 📱数字货币银行卡,注册送 7 美元💲
查看: 107|回复: 0

批量删除 Youtube Watch Later 视频列表的方式

[复制链接]
HelloWorld 发表于 2025-4-20 16:59:54 | 显示全部楼层 |阅读模式

注册免广告

您需要 登录 才可以下载或查看,没有账号?注册免广告

×
本帖最后由 HelloWorld 于 2025-4-20 19:30 编辑

2000+ 的视频,官方没有提供批量删除途径,于是写了个脚本自动删除:

  1. (async function clearWatchLater() {
  2.   const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

  3.   const removeOneVideo = async (button) => {
  4.     button.click();
  5.     await delay(200);

  6.     const removeBtn = document.evaluate(
  7.       '//tp-yt-paper-item[contains(., "移除") or contains(., "Remove")]',
  8.       document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null
  9.     ).singleNodeValue;

  10.     if (removeBtn) {
  11.       removeBtn.click();
  12.       console.log('✅ 视频已移除');
  13.       await delay(Math.random() * 1000);
  14.     }
  15.   };

  16.   const buttons = document.querySelectorAll('button[aria-label="Action menu"]');
  17.   const total = buttons.length;
  18.   console.log(`🚀 找到 ${total} 个视频,开始删除...`);

  19.   for (let i = 0; i < total; i++) {
  20.     await removeOneVideo(buttons[i]);

  21.     // 每删除5个视频后,额外等待几秒,避免限流
  22.     if ((i + 1) % 5 === 0) {
  23.       console.log(`⏳ 已删除 ${i + 1} 个视频,休息5秒防止触发限流...`);
  24.       await delay(5000);
  25.     }
  26.   }

  27.   console.log('🎉 删除完毕!如果页面还有视频,刷新后再次执行此脚本即可。');
  28. })();
复制代码
使用方法:打开:https://www.youtube.com/playlist?list=WL ,在浏览器调试工具 console 里黏贴上述代码

你可以把网页最小化,不影响你做其他事情

代码其实是让 ChatGPT 4.5 帮我生成的,提示词如下:
  1. 我想清空 youtube watch later 里的所有视频
  2. <button id="button" class="style-scope yt-icon-button" aria-label="Action menu"> 菜单按钮是这个
  3. <tp-yt-paper-item class="style-scope ytd-menu-service-item-renderer" style-target="host" role="option" tabindex="0" aria-disabled="false"> 移除按钮是这个
  4. 根据这个帮我写删除脚本,同时注意频繁操作会触发限流
复制代码


在补充一个删除点赞视频的脚本:
  1. (async function clearLikedVideos() {
  2.   const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

  3.   const removeOneVideo = async (button) => {
  4.     button.click();
  5.     await delay(200);

  6.     const removeBtn = document.evaluate(
  7.       '//ytd-menu-service-item-renderer[contains(., "删除") or contains(., "Remove")]//tp-yt-paper-item',
  8.       document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null
  9.     ).singleNodeValue;

  10.     if (removeBtn) {
  11.       removeBtn.click();
  12.       console.log('✅ 视频已删除');
  13.       await delay(Math.random() * 1500 + 500);
  14.     }
  15.   };

  16.   const buttons = document.querySelectorAll('button[aria-label="Action menu"]');
  17.   const total = buttons.length;
  18.   console.log(`🚀 找到 ${total} 个点赞的视频,开始删除...`);

  19.   for (let i = 0; i < total; i++) {
  20.     await removeOneVideo(buttons[i]);

  21.     if ((i + 1) % 5 === 0) {
  22.       console.log(`⏳ 已删除 ${i + 1} 个视频,休息5秒防止触发限流...`);
  23.       await delay(5000);
  24.     }
  25.   }

  26.   console.log('🎉 删除完毕!如果页面还有视频,刷新后再次执行此脚本即可。');
  27. })();
复制代码
如果帖子/回帖帮助到你,请给作者评分/点赞
您需要登录后才可以回帖 登录 | 注册免广告

本版积分规则

排行榜|意见建议|黑名单|数字居民论坛

GMT+8, 2025-5-4 17:59

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表