您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
You can hide share button, Thanks button, Clip button, Download button, Save (to platlist) button and live chat on YouTube videos.
- // ==UserScript==
- // @name YouTube Button Hider
- // @namespace YouTube Button Hider
- // @version 1.1.2
- // @author Hess
- // @match https://www.youtube.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
- // @description You can hide share button, Thanks button, Clip button, Download button, Save (to platlist) button and live chat on YouTube videos.
- // @run-at document-idle
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // 각 버튼의 숨기기 여부 (1: 숨기기, 0: 놔두기)
- const featureToggle = {
- hideShareButton: 1, // 공유 버튼 숨기기
- hideThanksButton: 1, // Thanks 버튼 숨기기
- hideClipButton: 1, // 클립 버튼 숨기기
- hideDownloadButton: 1, // 다운로드 버튼 숨기기
- hideSaveButton: 1, // (재생목록에) 저장 버튼 숨기기
- hideChatWindow: 1 // 채팅창 숨기기
- };
- function hideButtons() {
- // 공유 버튼 숨기기
- if (featureToggle.hideShareButton) {
- const shareButton = document.querySelector(
- 'div#top-level-buttons-computed yt-button-view-model button-view-model button[aria-label="공유"]'
- );
- if (shareButton) {
- shareButton.style.display = 'none';
- }
- const shareButton2 = document.querySelector(
- 'div#top-level-buttons-computed yt-button-view-model button-view-model button[aria-label="Share"]'
- );
- if (shareButton2) {
- shareButton2.style.display = 'none';
- }
- const shareButton3 = document.querySelector(
- 'div#top-level-buttons-computed yt-button-view-model button-view-model button[aria-label="共有"]'
- );
- if (shareButton3) {
- shareButton3.style.display = 'none';
- }
- }
- // Thanks 버튼 숨기기
- if (featureToggle.hideThanksButton) {
- const thanksButton = document.querySelector(
- 'button[aria-label="Thanks"]'
- );
- if (thanksButton) {
- thanksButton.style.display = 'none';
- }
- const thanksButton2 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === 'Thanks'
- );
- if (thanksButton2) {
- thanksButton2.style.display = 'none';
- }
- }
- // 클립 버튼 숨기기
- if (featureToggle.hideClipButton) {
- const clipButton = document.querySelector(
- 'button[aria-label="클립"]'
- );
- if (clipButton) {
- clipButton.style.display = 'none';
- }
- const clipButton2 = document.querySelector(
- 'button[aria-label="Clip"]'
- );
- if (clipButton2) {
- clipButton2.style.display = 'none';
- }
- const clipButton3 = document.querySelector(
- 'button[aria-label="クリップ"]'
- );
- if (clipButton3) {
- clipButton3.style.display = 'none';
- }
- const clipButton4 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === '클립'
- );
- if (clipButton4) {
- clipButton4.style.display = 'none';
- }
- const clipButton5 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === 'Clip'
- );
- if (clipButton5) {
- clipButton5.style.display = 'none';
- }
- const clipButton6 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === 'クリップ'
- );
- if (clipButton6) {
- clipButton6.style.display = 'none';
- }
- }
- // 오프라인 저장 버튼 숨기기
- if (featureToggle.hideDownloadButton) {
- const downloadButton = document.querySelector(
- 'ytd-download-button-renderer', 'ytd-menu-service-item-download-renderer'
- );
- if (downloadButton) {
- downloadButton.style.display = 'none';
- }
- const downloadButton2 = document.querySelector(
- 'ytd-menu-service-item-download-renderer'
- );
- if (downloadButton2) {
- downloadButton2.style.display = 'none';
- }
- }
- // (재생목록에) 저장 버튼 숨기기
- if (featureToggle.hideSaveButton) {
- const saveButton = document.querySelector(
- 'button[aria-label="재생목록에 저장"]'
- );
- if (saveButton) {
- saveButton.style.display = 'none';
- }
- const saveButton2 = document.querySelector(
- 'button[aria-label="Save to platlist"]'
- );
- if (saveButton2) {
- saveButton2.style.display = 'none';
- }
- const saveButton3 = document.querySelector(
- 'button[aria-label="再生リストに保存"]'
- );
- if (saveButton3) {
- saveButton3.style.display = 'none';
- }
- const saveButton4 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === '저장'
- );
- if (saveButton4) {
- saveButton4.style.display = 'none';
- }
- const saveButton5 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === 'Save'
- );
- if (saveButton5) {
- saveButton5.style.display = 'none';
- }
- const saveButton6 = Array.from(document.querySelectorAll('ytd-menu-service-item-renderer[role="menuitem"] tp-yt-paper-item[role="option"]')).find(
- item => item.querySelector('yt-formatted-string').innerText === '保存'
- );
- if (saveButton6) {
- saveButton6.style.display = 'none';
- }
- }
- // 채팅창 숨기기
- if (featureToggle.hideChatWindow) {
- const chatWindow = document.querySelector(
- '#chat'
- );
- if (chatWindow) {
- chatWindow.style.display = 'none';
- }
- }
- }
- // 페이지 로드 시 버튼 숨기기
- hideButtons();
- // 페이지 변경 감지 시 클립 버튼 숨기기
- const observer = new MutationObserver(hideButtons);
- observer.observe(document.body, { childList: true, subtree: true });
- })();