您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically switches YouTube's recommendation column to either "From the series", "from (channel name)", or "Related"
当前为
// ==UserScript== // @name Youtube Hide Recomended (English) // @name:ja YouTubeのリコメンド自動切換・非表示(英語環境用) // @version 2025-05-19 // @description Automatically switches YouTube's recommendation column to either "From the series", "from (channel name)", or "Related" // @description:ja YouTubeのリコメンド欄を自動でFrom the series、from (チャンネル名)、Relatedのどれかに切り替えます // @author hirhirbyrd // @match https://www.youtube.com/* // @license MIT // @namespace https://greasyfork.org/users/1467931 // ==/UserScript== (function() { 'use strict'; let chname = ''; // ここに JSON から取得した author を代入する const getAuthorFromJSON = () => { const microformatScript = document.querySelector('#microformat script[type="application/ld+json"]'); if (microformatScript) { try { const jsonData = JSON.parse(microformatScript.textContent); if (jsonData.author) { chname = jsonData.author; console.log("チャンネル名を取得:", chname); } } catch (e) { console.error("author名の取得に失敗:", e); } } }; // 初期読み込み時に取得 window.addEventListener('load', () => { setTimeout(getAuthorFromJSON, 1000); // 少し待ってから実行 }); const observer = new MutationObserver(() => { // author がまだ取得できていない場合は処理をスキップ if (!chname) return; const lists = document.querySelector('div#secondary-inner.style-scope.ytd-watch-flexy'); const elementC = document.querySelector('div#related iron-selector#chips yt-chip-cloud-chip-renderer:has(#text[title="From the series"])'); const elementA = document.querySelector('div#related iron-selector#chips yt-chip-cloud-chip-renderer:has(#text[title="From ' + chname + '"])'); const elementB = document.querySelector('div#related iron-selector#chips yt-chip-cloud-chip-renderer:has(#text[title="Related"])'); if (elementC) { if (elementC.getAttribute('aria-selected') === 'false') { lists.hidden = false; elementC.click(); } } else if (elementA) { if (elementA.getAttribute('aria-selected') === 'false') { lists.hidden = false; elementA.click(); } } else if (elementB) { if (elementB.getAttribute('aria-selected') === 'false') { lists.hidden = false; elementB.click(); } } else { lists.hidden = true; return; } }); observer.observe(document, { childList: true, subtree: true }); })();