您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
H.264 optimize, VP9 kapalı, throttling optimize, DOM ve Ambient iyileştirildi, lazy-load yorumlar, ekstra CSS optimizasyonu
// ==UserScript== // @name YouTube Performance CPU Optimized v2.4 (hardware acceleration off) // @namespace http://tampermonkey.net/ // @version 2.4.2 // @description H.264 optimize, VP9 kapalı, throttling optimize, DOM ve Ambient iyileştirildi, lazy-load yorumlar, ekstra CSS optimizasyonu // @author Sefa AVAN // @license MIT // @match http://*.youtube.com/* // @match http://youtube.com/* // @match https://*.youtube.com/* // @match https://youtube.com/* // @run-at document-start // ==/UserScript== (function () { 'use strict'; // ---------- 1) Codec override (AV1 & VP9 kapalı, sadece H.264 açık) ---------- const origCanPlayType = HTMLMediaElement.prototype.canPlayType; HTMLMediaElement.prototype.canPlayType = function (type) { if (type && (/codecs="?av01/i.test(type) || /codecs="?vp9/i.test(type))) return ''; return origCanPlayType.call(this, type); }; if (navigator.mediaCapabilities && navigator.mediaCapabilities.decodingInfo) { const origDecodingInfo = navigator.mediaCapabilities.decodingInfo.bind(navigator.mediaCapabilities); navigator.mediaCapabilities.decodingInfo = async (cfg) => { const ct = cfg?.video?.contentType || ''; if (/codecs="?av01/i.test(ct) || /codecs="?vp9/i.test(ct)) { return { supported: false, powerEfficient: false, smooth: false }; } return origDecodingInfo(cfg); }; } // ---------- 2) Zamanlayıcı optimizasyonu (CPU Tamer mantığı) ---------- const raf = window.requestAnimationFrame || (cb => setTimeout(cb, 16)); const caf = window.cancelAnimationFrame || clearTimeout; const wrapTimer = (orig) => { return function (cb, delay, ...args) { if (typeof cb !== "function") return orig(cb, delay, ...args); if (delay && delay > 50) return orig(cb, delay, ...args); let id; const loop = () => { id = raf(() => { cb(...args); loop(); }); }; loop(); return id; }; }; window.setTimeout = wrapTimer(window.setTimeout); window.setInterval = wrapTimer(window.setInterval); window.clearTimeout = caf; window.clearInterval = caf; // ---------- 3) Event throttling ---------- function throttleEvents(root = document) { const throttleMs = 50; const last = {}; const types = ['mousemove', 'pointermove', 'scroll', 'resize']; types.forEach(type => { root.addEventListener(type, (e) => { const now = performance.now(); if (last[type] && now - last[type] < throttleMs) { e.stopImmediatePropagation(); e.stopPropagation(); return; } last[type] = now; }, true); }); } // ---------- 4) Ambient ve CSS efektlerini kapatma ---------- function killVisuals() { const style = document.createElement('style'); style.textContent = ` .ytp-ambient-light, .ytp-ambient-mode-enabled, ytd-watch-flexy[ambient-mode-enabled] .ytp-ambient-light, ytd-watch-flexy[ambient-mode-enabled] .html5-video-player::before { display: none !important; } ytd-watch-flexy, ytd-app, #content, #page-manager { backdrop-filter: none !important; filter: none !important; animation: none !important; transition: none !important; } `; document.documentElement.appendChild(style); } // ---------- 5) Lazy-load yorumlar ---------- function lazyLoadComments() { const comments = document.querySelector("ytd-comments#comments"); if (!comments) return; comments.style.contentVisibility = "hidden"; const obs = new IntersectionObserver((entries) => { if (entries[0].isIntersecting) { comments.style.contentVisibility = "visible"; obs.disconnect(); } }); obs.observe(comments); } // ---------- 6) Focus Mode (videoyu ortala ama yan paneli kapatma) ---------- function focusMode() { const style = document.createElement("style"); style.textContent = ` ytd-watch-flexy { max-width: 100% !important; } #columns { display: flex; justify-content: center; } `; document.documentElement.appendChild(style); } // ---------- Apply ---------- const reapply = () => { throttleEvents(); killVisuals(); lazyLoadComments(); focusMode(); }; document.addEventListener('DOMContentLoaded', reapply); window.addEventListener('yt-navigate-finish', reapply); })();