Replace video player with HTML5 native player (also enables download of videos)
当前为
// ==UserScript==
// @name thisVID.com Native Player (HTML5) and download
// @namespace _pc
// @version 2.1
// @license MIT
// @description Replace video player with HTML5 native player (also enables download of videos)
// @author verydelight
// @match *://thisvid.com/videos/*
// @icon https://www.thisvid.com/favicon.ico
// @compatible Firefox Tampermonkey
// @grant none
// ==/UserScript==
(function() {
'use strict';
function insertVideo() {
const videoElement = document.querySelector('video.fp-engine');
if (!videoElement) return;
const videoUrl = videoElement.src;
const posterUrl = document.querySelector('.video-holder img').src;
const newVideoElement = document.createElement('video');
newVideoElement.poster = posterUrl;
newVideoElement.src = videoUrl;
newVideoElement.controls = true;
newVideoElement.style.width = '100%';
const videoHolder = document.querySelector('.video-holder');
if (videoHolder) {
videoHolder.innerHTML = '';
videoHolder.appendChild(newVideoElement);
newVideoElement.play();
}
}
const targetNode = document.getElementById('kt_player');
if (targetNode) {
const observer = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
const videoElement = targetNode.querySelector('video');
if (videoElement) {
insertVideo();
observer.disconnect();
}
}
}
});
observer.observe(targetNode, { childList: true, subtree: true });
//console.log('MutationObserver is monitoring for <video> elements within kt_player');
} else {
//console.error('The element with ID "kt_player" was not found.');
}
})();