您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Youtube Auto-Skip ads | Download Button | Sponsor Skip | Redirect to YouTubePi | Anti-Adblock Removal
// ==UserScript== // @name Extra Youtube Features // @namespace Violentmonkey Scripts // @version 1.3 // @license MIT // @author Orbitt // @description Youtube Auto-Skip ads | Download Button | Sponsor Skip | Redirect to YouTubePi | Anti-Adblock Removal // @match *://www.youtube.com/* // @match *://m.youtube.com/* // @grant none // ==/UserScript== (function () { 'use strict'; function skipAds() { const skipButtons = [ '.ytp-ad-skip-button', '.ytp-ad-skip-button-modern', '.ytp-skip-ad-button', 'ytd-miniplayer .ytp-ad-skip-button', '[class*="skip"][class*="ad"]' ]; skipButtons.forEach(sel => { document.querySelectorAll(sel).forEach(btn => btn.click()); }); document.querySelectorAll('.ytp-ad-overlay-container, .ytp-ad-image-overlay, .video-ads.ytp-ad-module').forEach(el => el.remove()); } function addDownloadButton() { const existing = document.querySelector('#my-download-btn'); const container = document.querySelector('#above-the-fold #top-level-buttons-computed'); if (container && !existing) { const btn = document.createElement('button'); btn.id = "my-download-btn"; btn.className = "yt-spec-button-shape-next yt-spec-button-shape-next--tonal yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m"; const span = document.createElement('span'); span.className = "yt-spec-button-shape-next__button-text-content"; span.innerText = "Download"; btn.appendChild(span); btn.onclick = () => { const videoId = new URLSearchParams(window.location.search).get("v"); if (videoId) window.open(`https://en.y2mate.is/pZuT/watch?v=${videoId}`, '_blank'); }; container.appendChild(btn); } } function sponsorSkip() { const video = document.querySelector('video'); const chapters = document.querySelectorAll('.ytp-chapter-hover-container'); if (video && chapters.length > 0) { chapters.forEach(ch => { if (ch.innerText.toLowerCase().includes('sponsor')) video.currentTime += 30; }); } } function removeAntiAdblockPopup() { const selectors = [ 'tp-yt-paper-dialog', 'ytd-popup-container', '.ytd-consent-bump-v2-lightbox', '[class*="dialog"][class*="popup"]', '[role="dialog"]', '.ytp-popup', '.video-ads.ytp-ad-module' ]; selectors.forEach(sel => { document.querySelectorAll(sel).forEach(dlg => { const isAdblockWarning = dlg.querySelector('a[href*="support.google.com"]') || /adblock|allow\s+ads|blocker|advertising|turn\s+off/i.test(dlg.textContent) || dlg.querySelector('[class*="adblock"], [class*="blocker"]') || dlg.classList.contains('video-ads'); if (isAdblockWarning) { dlg.remove(); document.body.style.overflow = 'auto'; } }); }); const backdrops = [ 'tp-yt-iron-overlay-backdrop.opened', '.ytp-ad-overlay-container', '[class*="backdrop"][class*="opened"]', '[class*="overlay"][style*="display: block"]', '.ytp-ad-module' ]; backdrops.forEach(sel => { document.querySelectorAll(sel).forEach(el => { el.remove(); document.body.style.overflow = 'auto'; }); }); const player = document.querySelector('#movie_player, .html5-video-player'); if (player) { if (player.style.display === 'none' || player.classList.contains('ad-showing')) { player.style.display = 'block'; player.classList.remove('ad-showing', 'ad-interrupting'); } const video = player.querySelector('video'); if (video && video.paused) video.play().catch(() => {}); } } function bypassAgeRestriction() { const ageDialog = document.querySelector('ytd-enforcement-message-view-model, [class*="age-restriction"]'); if (ageDialog) ageDialog.remove(); const video = document.querySelector('video'); if (video && video.paused && video.readyState === 0) { const isAgeBlocked = document.querySelector('ytd-player .ytd-watch-flexy[ad-blocked], [class*="age-restricted"]'); const videoId = new URLSearchParams(window.location.search).get('v'); if (isAgeBlocked && videoId) window.location.href = `https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1`; } } function removeAdBanners() { const selectors = [ '#player-ads', '#masthead-ad', '.ytp-ad-overlay-container', '.ytp-ad-image-overlay', '.yt-mealbar-promo-renderer', '.ytp-featured-product', 'ytd-merch-shelf-renderer', 'ytd-in-feed-ad-layout-renderer', '.tp-yt-iron-a11y-announcer', 'ytd-ad-slot-renderer', '[class*="sponsored"], [class*="ad-slot"]' ]; selectors.forEach(sel => { document.querySelectorAll(sel).forEach(el => { if (/ad|advertisement|sponsored|promo/i.test(el.textContent) || el.querySelector('[class*="ad"], [class*="sponsor"]') || el.classList.contains('video-ads')) el.remove(); }); }); } function keepVideoPlayingEarly() { const video = document.querySelector('video'); if (!video || video.dataset.keepPlayingEarly) return; video.dataset.keepPlayingEarly = 'true'; const onPause = () => { if (video.currentTime <= 3) video.play().catch(() => {}); }; video.removeEventListener('pause', onPause); video.addEventListener('pause', onPause); } let debounceTimeout; const observer = new MutationObserver(() => { clearTimeout(debounceTimeout); debounceTimeout = setTimeout(() => { removeAntiAdblockPopup(); bypassAgeRestriction(); skipAds(); removeAdBanners(); keepVideoPlayingEarly(); addDownloadButton(); }, 50); }); observer.observe(document.body, { childList: true, subtree: true, attributes: true }); removeAntiAdblockPopup(); bypassAgeRestriction(); skipAds(); removeAdBanners(); keepVideoPlayingEarly(); addDownloadButton(); setInterval(() => { sponsorSkip(); skipAds(); removeAdBanners(); }, 5000); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址