Greasy Fork is available in English.
Automatically clicks the 'DisLike' and then 'Next' button in a playlist
当前为
// ==UserScript==
// @name YouTube Auto-DisLike Playlist
// @namespace http://userscripts.org/users/23652
// @description Automatically clicks the 'DisLike' and then 'Next' button in a playlist
// @include http://*.youtube.com/watch*v=*
// @include http://youtube.com/watch*v=*
// @include https://*.youtube.com/watch*v=*
// @include https://youtube.com/watch*v=*
// @copyright andwan0
// @version 2.2
// @license GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// @require http://greasyfork.icu/scripts/1884-gm-config/code/GM_config.js?version=4836
// @require http://greasyfork.icu/scripts/1885-joesimmons-library/code/JoeSimmons'%20Library.js?version=7915
// @require http://greasyfork.icu/scripts/2104-youtube-button-container-require/code/YouTube%20-%20Button%20Container%20(@require).js?version=5493
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_registerMenuCommand
// ==/UserScript==
/* CHANGELOG
2025-11-03 fixed working with youtube again!
*/
(function () {
'use strict';
var intv, timeStart;
// Run a function when the page is fully loaded
JSL.runAt('end', function() {
// timeouts are in milliseconds
window.setTimeout(doLike, 3000);//change this to doDislike
window.setTimeout(doNext, 29000);
//window.setTimeout(reset, 61000);//reload page to reset the doLike, doNext timers...
});
function reset() {
console.log('reset()');
location.reload(true);
}
function doLike() {
console.log('doLike()');
if (document.getElementsByClassName('ytLikeButtonViewModelHost')[1].childNodes[0].childNodes[0].childNodes[0].getAttribute('aria-pressed') != 'true') {
document.getElementsByClassName('ytLikeButtonViewModelHost')[1].childNodes[0].childNodes[0].childNodes[0].click();
}
}
function doDislike() {
console.log('doDislike()');
if (document.getElementsByClassName('ytDislikeButtonViewModelHost')[1].childNodes[0].childNodes[0].childNodes[0].getAttribute('aria-pressed') != 'true') {
document.getElementsByClassName('ytDislikeButtonViewModelHost')[1].childNodes[0].childNodes[0].childNodes[0].click();
}
}
function doNext() {
console.log('doNext()');
window.setTimeout(doLike, 3000);//change this to doDislike
window.setTimeout(doNext, 29000);
var nextButton = document.querySelector('.ytp-next-button');
nextButton.click();
}
}());