Hide youtube shorts & upcoming

Remove youtube shorts & upcoming from subscriptions (Only in grid view)

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Hide youtube shorts & upcoming
// @namespace    https://gist.github.com/mawburn/b0ad0202ad4917b8f57b3a68fe51fb3e
// @version      1.6
// @description  Remove youtube shorts & upcoming from subscriptions (Only in grid view)
// @author       mawburn, danieloliveira117
// @match        https://*.youtube.com/feed/subscriptions
// @license      MIT
// @grant        none
// ==/UserScript==

;(function () {
  'use strict';

  const selectors = ['SHORTS', 'UPCOMING']
    .map(o => `ytd-thumbnail-overlay-time-status-renderer[overlay-style="${o}"]`)
    .join(',');

  function removeShorts() {
    document.querySelectorAll(selectors).forEach(t => {
      if (t) {
        const elem = t.closest('ytd-rich-item-renderer');


        if (elem) {
          elem.remove();
        }
      }
    });
  }

  const observer = new MutationObserver(removeShorts);
  observer.observe(document.querySelector('#page-manager'), { childList: true, subtree: true });
})();