您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically skips liked/disliked songs using a smart polling method with jQuery to reduce CPU load.
当前为
// ==UserScript== // @name YouTube Music - Skip Liked/Disliked (jQuery Smart Poll) // @namespace http://tampermonkey.net/ // @version 1.2 // @description Automatically skips liked/disliked songs using a smart polling method with jQuery to reduce CPU load. // @author torch & Gemini // @match https://music.youtube.com/* // @require https://code.jquery.com/jquery-3.7.1.min.js // @grant none // @license MIT // ==/UserScript== (function($) { 'use strict'; // Переменная для хранения названия текущего трека. // Это ключ к снижению нагрузки. let currentSongTitle = ""; // Функция, которая непосредственно проверяет лайки/дизлайки и пропускает трек. function performSkipCheck() { const $playerBar = $('ytmusic-player-bar'); // Работаем в контексте плеера для скорости // Ищем кнопки только внутри панели плеера const $likeButton = $playerBar.find('ytmusic-like-button-renderer[like-status="LIKE"]'); const $dislikeButton = $playerBar.find('ytmusic-like-button-renderer[like-status="DISLIKE"]'); const $skipButton = $playerBar.find('.next-button'); // Если песня имеет лайк или дизлайк, и кнопка "пропустить" доступна if ($skipButton.length && ($likeButton.length || $dislikeButton.length)) { console.log(`[YT Music Skipper] Пропускаем "${currentSongTitle}", так как он лайкнут/дизлайкнут.`); $skipButton.trigger('click'); // .click() может не сработать, .trigger('click') надежнее } else { console.log(`[YT Music Skipper] Воспроизводим: "${currentSongTitle}"`); } } // Запускаем проверку каждые полсекунды (500 мс). Это хороший баланс // между скоростью реакции и производительностью. setInterval(function() { // Ищем элемент с названием трека и его текст const $titleElement = $('ytmusic-player-bar .title'); const newTitle = $titleElement.text(); // Проверяем, что элемент с названием существует, не пуст и изменился if ($titleElement.length && newTitle && newTitle !== currentSongTitle) { console.log(`[YT Music Skipper] Обнаружен новый трек: "${newTitle}"`); // Обновляем название текущего трека currentSongTitle = newTitle; // !!! ВАЖНО !!! // Даем интерфейсу ~250 мс на то, чтобы обновить состояние кнопок лайка/дизлайка // после смены трека. Это предотвращает ложные срабатывания. setTimeout(performSkipCheck, 250); } }, 500); console.log('[YT Music Skipper] Скрипт для пропуска песен запущен.'); })(window.jQuery);