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 });
})();