MediaSession nexttrack, tự bấm play khi tự dừng, trừ khi tự bấm Pause(tắt autoplay).
// ==UserScript==
// @name YouTube :: MediaSession Nexttrack + AutoPlay
// @namespace http://tampermonkey.net/
// @version 2.0
// @description MediaSession nexttrack, tự bấm play khi tự dừng, trừ khi tự bấm Pause(tắt autoplay).
// @author Rpyon
// @icon https://uxwing.com/wp-content/themes/uxwing/download/brands-and-social-media/botim-icon.png
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
let autoplayDisabled = false;
function setupMediaSession() {
if ('mediaSession' in navigator) {
navigator.mediaSession.setActionHandler('nexttrack', nextSong);
}
}
function nextSong() {
const btnYtb = document.querySelector('.ytp-next-button.ytp-button');
if (btnYtb && !btnYtb.disabled) {
btnYtb.click();
window.focus();
setTimeout(setupMediaSession, 100);
}
}
function autoResumeVideo() {
const video = document.querySelector('video');
if (!video) return;
// Chỉ gắn 1 lần mỗi video
video.addEventListener('pause', () => {
setTimeout(() => {
if (autoplayDisabled) return;
if (video.paused && !video.ended && !video.seeking) {
video.play().catch(() => {});
}
}, 500);
}, { once: true });
video.addEventListener('playing', () => {
if (autoplayDisabled) {
console.log('[Tampermonkey] Video playing again — re-enable autoplay');
autoplayDisabled = false;
}
}, { once: true });
}
function monitorPlaylistPlayButton() {
const btn = document.querySelector('.ytp-play-button-playlist');
if (btn) {
btn.addEventListener('click', () => {
autoplayDisabled = true;
console.log('[Tampermonkey] Playlist play button clicked: AutoPlay disabled');
}, { once: true });
}
}
function monitorManualPlayButton() {
const btn = document.querySelector('.ytp-play-button.ytp-button');
if (btn) {
btn.addEventListener('click', () => {
autoplayDisabled = true;
console.log('[Tampermonkey] Manual play/pause clicked: AutoPlay disabled');
}, { once: true });
}
}
let lastUrl = location.href;
new MutationObserver(() => {
const currentUrl = location.href;
if (currentUrl !== lastUrl) {
lastUrl = currentUrl;
autoplayDisabled = false;
setTimeout(() => {
setupMediaSession();
autoResumeVideo();
monitorPlaylistPlayButton();
monitorManualPlayButton();
}, 500);
}
}).observe(document, { subtree: true, childList: true });
setInterval(() => {
setupMediaSession();
autoResumeVideo();
monitorPlaylistPlayButton();
monitorManualPlayButton();
}, 2000);
setupMediaSession();
autoResumeVideo();
monitorPlaylistPlayButton();
monitorManualPlayButton();
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址