您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
При нажатии лайка на YouTube играет гимн Украины 🇺🇦 (с боковой панелью настроек прямо в YouTube)
// ==UserScript== // @name YouTube Like Hymn UA + Sidebar Settings // @namespace https://github.com/custom/yt-like-hymn // @version 2.0 // @description При нажатии лайка на YouTube играет гимн Украины 🇺🇦 (с боковой панелью настроек прямо в YouTube) // @author SLAVA UKRAINI // @match https://www.youtube.com/* // @icon https://www.youtube.com/s/desktop/8e0a5f8b/img/favicon.ico // @grant GM_getValue // @grant GM_setValue // @run-at document-end // ==/UserScript== (function () { 'use strict'; // Значения по умолчанию const defaults = { enabled: true, hymnURL: "https://upload.wikimedia.org/wikipedia/commons/5/54/Ukraine_National_Anthem.ogg", volume: 1.0, shorts: true }; function getSetting(key) { return GM_getValue(key, defaults[key]); } function setSetting(key, value) { GM_setValue(key, value); } // 🎵 Аудио function injectAudioPlayer() { if (!document.getElementById("ua-hymn-player")) { let audio = document.createElement("audio"); audio.id = "ua-hymn-player"; audio.src = getSetting("hymnURL"); audio.volume = getSetting("volume"); audio.preload = "auto"; document.body.appendChild(audio); } } function playHymn() { if (!getSetting("enabled")) return; const player = document.getElementById("ua-hymn-player"); if (player) { player.src = getSetting("hymnURL"); player.volume = getSetting("volume"); player.currentTime = 0; player.play().catch(err => console.warn("Автовоспроизведение заблокировано:", err)); } } // 📌 Слушаем лайк function attachLikeListener() { const likeButton = document.querySelector( '#menu #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button, #segmented-like-button button' ); if (likeButton && !likeButton.dataset.hymnAttached) { likeButton.addEventListener("click", () => { if (!getSetting("shorts") && window.location.href.includes("/shorts/")) return; playHymn(); }); likeButton.dataset.hymnAttached = "true"; console.log("✅ Гимн Украины привязан к кнопке Лайк"); } } // 🎛️ Виджет function createSidebar() { if (document.getElementById("ua-hymn-sidebar")) return; const sidebar = document.createElement("div"); sidebar.id = "ua-hymn-sidebar"; sidebar.innerHTML = ` <div id="ua-hymn-toggle">🇺🇦</div> <div id="ua-hymn-panel"> <h2>⚙️ Настройки гимна</h2> <label><input type="checkbox" id="ua-enabled"> Включить проигрывание</label><br> <label>Ссылка: <input type="text" id="ua-url" style="width:90%"></label><br> <label>Громкость: <input type="range" id="ua-volume" min="0" max="1" step="0.1"></label><br> <label><input type="checkbox" id="ua-shorts"> Работать в Shorts</label><br> <button id="ua-save">💾 Сохранить</button> </div> `; document.body.appendChild(sidebar); // CSS const style = document.createElement("style"); style.textContent = ` #ua-hymn-sidebar { position: fixed; top: 50%; right: 0; transform: translateY(-50%); z-index: 999999; font-family: Arial, sans-serif; } #ua-hymn-toggle { background: #0057b7; color: #ffd700; font-size: 24px; padding: 10px; border-radius: 10px 0 0 10px; cursor: pointer; box-shadow: 0 0 10px rgba(0,0,0,0.5); } #ua-hymn-panel { display: none; background: #111; color: #fff; padding: 15px; width: 250px; border-radius: 10px 0 0 10px; box-shadow: 0 0 15px rgba(0,0,0,0.8); } #ua-hymn-panel h2 { margin-top: 0; color: #00ffea; font-size: 18px; } #ua-save { margin-top: 10px; background: #007bff; color: #fff; border: none; padding: 5px 10px; border-radius: 5px; cursor: pointer; } #ua-save:hover { background: #0056b3; } `; document.head.appendChild(style); // Кнопка открытия/закрытия const toggle = document.getElementById("ua-hymn-toggle"); const panel = document.getElementById("ua-hymn-panel"); toggle.addEventListener("click", () => { panel.style.display = (panel.style.display === "block") ? "none" : "block"; }); // Подгрузка сохранённых настроек document.getElementById("ua-enabled").checked = getSetting("enabled"); document.getElementById("ua-url").value = getSetting("hymnURL"); document.getElementById("ua-volume").value = getSetting("volume"); document.getElementById("ua-shorts").checked = getSetting("shorts"); // Сохранение document.getElementById("ua-save").addEventListener("click", () => { setSetting("enabled", document.getElementById("ua-enabled").checked); setSetting("hymnURL", document.getElementById("ua-url").value); setSetting("volume", parseFloat(document.getElementById("ua-volume").value)); setSetting("shorts", document.getElementById("ua-shorts").checked); alert("✅ Настройки сохранены!"); injectAudioPlayer(); }); } // 🚀 Запуск injectAudioPlayer(); createSidebar(); const observer = new MutationObserver(() => { attachLikeListener(); }); observer.observe(document.body, { childList: true, subtree: true }); })();