YouTube自动点击跳过广告

油管自动点击跳过广告 增加自动快进

  1. // ==UserScript==
  2. // @name YouTube自动点击跳过广告
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.8
  5. // @description 油管自动点击跳过广告 增加自动快进
  6. // @match https://www.youtube.com/watch*
  7. // @author 无名尸
  8. // @license MIT
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. // 查找DOM元素的辅助函数
  15. function findElement(selector) {
  16. return document.querySelector(selector);
  17. }
  18.  
  19. // 检查广告是否存在
  20. function isAdPresent() {
  21. return findElement('.ytp-skip-ad-button, .ytp-preview-ad') ||
  22. findElement('.ytp-progress-bar-container[aria-disabled="true"]');
  23. }
  24.  
  25. // 跳过广告
  26. function skipAd(video) {
  27. video.currentTime = video.duration - 1;
  28. console.log('已跳过广告!');
  29. }
  30.  
  31. // 检查并跳过广告
  32. function checkAndSkipAd() {
  33. if (isAdPresent()) {
  34. const video = findElement('video');
  35. if (video) {
  36. skipAd(video);
  37. }
  38. }
  39. }
  40.  
  41. // 为视频元素添加事件监听器
  42. function addVideoEventListeners(video) {
  43. const events = ['loadeddata', 'loadedmetadata', 'loadstart'];
  44. events.forEach(event => {
  45. video.addEventListener(event, checkAndSkipAd);
  46. });
  47. }
  48.  
  49. // 初始化函数
  50. function initAdSkipper() {
  51. function checkForVideo() {
  52. const video = findElement('video');
  53. if (video) {
  54. checkAndSkipAd()
  55. addVideoEventListeners(video);
  56. clearInterval(videoCheckInterval);
  57. }
  58. }
  59.  
  60. const videoCheckInterval = setInterval(checkForVideo, 500);
  61. }
  62.  
  63. // 启动脚本
  64. initAdSkipper();
  65. })();