Stop videos looping

Stop videos looping (Youtube, Twitter, Tiktok, Instagram)

目前為 2024-09-18 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Stop videos looping
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Stop videos looping (Youtube, Twitter, Tiktok, Instagram)
// @author       @dmtri
// @match        https://*.youtube.com/*
// @match        https://*.twitter.com/*
// @match        https://*.tiktok.com/*
// @match        https://*.instagram.com/*
// @license MIT

// @icon
// @grant        none
// ==/UserScript==

(function () {
  "use strict";

  // Get the video element

  const init = () => {
    const vids = document.querySelectorAll("video");
    vids.forEach((vid) => {

      // Remove the loop attribute
      vid.removeAttribute("loop");
      const vidLen = vid.duration
      let vidCurr = vid.currentTime

      let a = setTimeout(() => {
        vid.pause()
      }, vidLen * 1000 - vidCurr * 1000 - 200)

      vid.addEventListener('seeked', () => {
        clearTimeout(a)
          a = setTimeout(() => {
            vid.pause()
          }, vidLen * 1000 - vidCurr * 1000 - 200)
      });

      vid.addEventListener("ended", () => {
        setTimeout(vid.pause(), 200);
      });

      // Add an event listener for the 'ended' event
      vid.addEventListener("play", () => {
          vidCurr = vid.currentTime
          clearTimeout(a)
          a = setTimeout(() => {
            vid.pause()
          }, vidLen * 1000 - vidCurr * 1000 - 200)
      });
    });
  };

  setInterval(init, 2000);
})();