您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Скрывает элементы "Shorts" из выдачи поиска и ленты на YouTube, чтобы помочь не отвлекаться на короткие ролики.
// ==UserScript== // @name Hide YouTube Shorts from Search and Feed // @namespace http://tampermonkey.net // @version 0.1 // @description Скрывает элементы "Shorts" из выдачи поиска и ленты на YouTube, чтобы помочь не отвлекаться на короткие ролики. // @author Anonymous // @match https://www.youtube.com/* // @grant none // @run-at document-end // @license MIT // ==/UserScript== (function() { 'use strict'; // Функция для скрытия всех элементов, связанных с YouTube Shorts function hideShortsElements() { // Массив всех селекторов, элементы которых нужно скрыть const selectorsToHide = [ '.yt-spec-touch-feedback-shape__fill', // Элементы с этим классом '.ytGridShelfViewModelGridShelfItem', // Элементы с этим классом '.shortsLockupViewModelHostThumbnailContainer', // Контейнеры с миниатюрами Shorts '.shortsLockupViewModelHostMetadataTitle', // Титулы видео Shorts '.yt-spec-button-shape-next', // Кнопки и элементы управления '.yt-icon-shape', // Логотипы иконки "Shorts" '.yt-core-attributed-string', // Все строки текста '.yt-section-header-view-model', // Заголовки секций '.shelf-header-layout-wiz', // Секции на странице '.shelf-header-layout-wiz__label-container', // Контейнеры для меток секций '.shelf-header-layout-wiz__title', // Заголовки секций, например "Shorts" '.ytd-rich-grid-media', // Элементы на странице, относящиеся к сетке видео 'hr', // Линии-разделители '.yt-uix-tooltip', // Всплывающие подсказки '.yt-spec-divider', // Разделители ]; // Проходим по каждому селектору и скрываем соответствующие элементы selectorsToHide.forEach(function(selector) { document.querySelectorAll(selector).forEach(function(element) { element.style.display = 'none'; }); }); // Скрываем заголовки с текстом "Shorts" в отдельных блоках document.querySelectorAll('.yt-core-attributed-string').forEach(function(element) { if (element.textContent.trim().toLowerCase() === 'shorts') { element.style.display = 'none'; } }); } // Вызов функции сразу после загрузки страницы hideShortsElements(); // Создаем MutationObserver, чтобы отслеживать изменения на странице const observer = new MutationObserver(function(mutationsList, observer) { // При изменениях на странице снова скрываем элементы hideShortsElements(); }); // Наблюдаем за изменениями в DOM observer.observe(document.body, { childList: true, // Отслеживаем добавление/удаление дочерних элементов subtree: true, // Отслеживаем все дочерние элементы на странице }); })();