您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Quality of life changes to YouTube
// ==UserScript== // @name YouTube Helper // @namespace ccn0 // @version 8 // @description Quality of life changes to YouTube // @author CCN0 // @license MIT // @match *://*.youtube.com/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAS1BMVEVHcEz/ADP/ADP/ADP/ADP/ADP/ADP/ADP/ADP/ADP/ADP/ADP/ADP/ADP/////AC//DUX/ACD/6+//RGP/ztf/q7n/hpn/H0n/Z35pZ192AAAADXRSTlMAZEr3h8U0rO3dGpd77vd9UAAAAXZJREFUWIXtlsl2hCAQRZkLZHBs7f//0mAn8ZBOF9CSRRa+pZ66Yg3UI+TSpX+lTilGqbAAUhpjtObcH+Jc6/hQSgArKGVKdU/hDoxOAkri2oBLwkV9aCrRGH8QTsd/E87He994AO/3TMoWgIz1Ny0A0xH1Rvl/SyvCWuK9Z4Si7/oaAMWLMFQRBLHY97dlHssISwADDCHc5rEEALQNdkCY1rHPn0ISrA0egIi451NhSoAQliGXCkN0CRBTseGp0ARrxAQQlhU9BEeHOQVExB1DVAL2/3hNqAaEpQ2AlrMOgDcUrynj3tJ4FcqA7FCVO3Fas71s8sMUptuYn2mZByxzYRgjIHMfTBU3CqA3kt9WpPd+yBKHveorLrR9NeG3cpVo615Q7ZupbTfKrnE7Q1zvTUlgu8PAxqlC+mFxzqeRq0+Xdfon2OFS4cQhOKRuVVGQb+RCS6DqpWHuFIuO2TkhhI22+UvW2vjAueiSmeqebfKlS3+gDxqiielmSzQ+AAAAAElFTkSuQmCC // @grant none // ==/UserScript== (function() { const YTHELPERINTERVAL = setInterval(youTubeHelper, 500); function youTubeHelper() { /* make player have sharp corners */ if (document.querySelector('ytd-player')) { document.querySelector('ytd-player').style.borderRadius = "0"; }; /* make notifications badge white */ if (document.querySelector('.yt-spec-icon-badge-shape__badge')) { document.querySelector('.yt-spec-icon-badge-shape__badge').style.color = "#fff"; }; /* hides notification amount in tab title */ document.title = document.title.replace(/^\([0-9]*\)\s/, ""); function removeElements(...selectors) { selectors.forEach(selector=>{ const elements = document.querySelectorAll(selector); elements.forEach(element => { element.remove(); }); }); }; /* REMOVES: * Voice Search button * Thanks button * Join button * Infocards menu * Hashtags * Channel Watermark * YouTube Shorts section * YouTube Playables section * and all other rich sections * Mix playlists * AI Video summary */ removeElements( 'button[aria-label="Search with your voice"]', 'button[aria-label="Thanks"]', 'button[aria-label="Join this channel"]', 'ytd-video-description-infocards-section-renderer', 'a.yt-simple-endpoint.style-scope.yt-formatted-string.bold', 'a.yt-simple-endpoint.bold.style-scope.yt-formatted-string', '.ytd-watch-info-text>a', 'button:has([aria-label="Channel watermark"])', 'ytd-rich-section-renderer', 'ytd-reel-shelf-renderer', "ytd-rich-item-renderer:has(h3[title^='Mix - '])", "[has-video-summary]"); /* remove link referrals */ document.querySelectorAll('a[href*="://www.youtube.com/redirect?"]').forEach(link => { if (link.getAttribute('href')) { const urlParams = new URLSearchParams(link.getAttribute('href')); const qParam = decodeURIComponent(urlParams.get('q')); if (qParam) { link.setAttribute('href', qParam); }; }; }); /* share prompt shows URL without referral*/ const shareUrlInput = document.getElementById('share-url'); if (shareUrlInput) { let currentUrl = shareUrlInput.value; currentUrl = currentUrl.replace(/(\?|\&)si=[^&]*/g, ''); shareUrlInput.value = currentUrl; }; /* redirects from shorts player to normal player */ if (window.location.href.includes('shorts/')) { let noshortsurl = window.location.href.replace('shorts/', 'watch?v='); clearInterval(YTHELPERINTERVAL); window.location.href = noshortsurl; }; /* skip gate for restricted videos */ const reasonText = document.querySelector("#reason"); if (reasonText) { if (reasonText.textContent == "This video may be inappropriate for some users.") { const url = new URL(window.location.href); url.searchParams.set('rco', '1'); clearInterval(YTHELPERINTERVAL); window.location.href = url.toString(); }; }; }; })();