YouTube™ YTMusic™ Nonstop

Prevent auto-pause, keep YouTube & YouTube Music nonstop

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         YouTube™ YTMusic™ Nonstop
// @namespace    https://github.com/nvbangg
// @version      1.0
// @description  Prevent auto-pause, keep YouTube & YouTube Music nonstop
// @author       nvbangg (https://github.com/nvbangg)
// @copyright    Copyright (c) 2025 Nguyễn Văn Bằng (nvbangg, github.com/nvbangg)
// @homepage     https://github.com/nvbangg/YouTube_YTMusic_Nonstop
// @icon         https://raw.githubusercontent.com/nvbangg/YouTube_YTMusic_Nonstop/main/src/icon.png
// @match        *://*.youtube.com/*
// @run-at       document-start
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  "use strict";
  // Force page to always appear visible
  Object.defineProperties(document, {
    hidden: { value: false },
    visibilityState: { value: "visible" },
  });

  // Block visibilitychange events
  addEventListener(
    "visibilitychange",
    (e) => e.stopImmediatePropagation(),
    true
  );

  // Keep _lact (last activity) fresh
  const keepActive = () => {
    if ("_lact" in window)
      setInterval(() => (window._lact = Date.now()), 300000);
  };
  (function wait() {
    "_lact" in window ? keepActive() : setTimeout(wait, 1000);
  })();
})();