您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Minimal video optimizer: lightweight preload, ad blocking
// ==UserScript== // @name Video Preload // @namespace none // @version 0.1 // @description Minimal video optimizer: lightweight preload, ad blocking // @match *://*/* // @grant none // ==/UserScript== Preload (() => { 'use strict'; const AD_KEYWORDS = ['ad', 'sponsor', 'banner', 'promo']; const SCAN_DELAY = 3000; const OBSERVE_DELAY = 500; const isVideo = src => src && (src.includes('.mp4') || src.startsWith('blob:') || src.startsWith('data:')); const isAd = src => AD_KEYWORDS.some(k => src.toLowerCase().includes(k)); function boost(video) { if (video.dataset.boosted) return; video.dataset.boosted = true; const src = video.currentSrc || video.src; if (!src || isAd(src)) return video.remove(); if (isVideo(src) && src.startsWith('http')) { const link = document.createElement('link'); link.rel = 'preload'; link.as = 'video'; link.href = src; document.head.append(link); } video.preload = 'auto'; video.playsInline = true; } let lastScan = 0; const scan = () => { if (Date.now() - lastScan < SCAN_DELAY) return; lastScan = Date.now(); document.querySelectorAll('video:not([data-boosted])').forEach(boost); }; new MutationObserver(() => setTimeout(scan, OBSERVE_DELAY)) .observe(document.body, { childList: true, subtree: true }); window.addEventListener('DOMContentLoaded', scan); scan(); })();