您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Detecta reproductores externos (como Vidmoly) y agrega un icono para descargar el video.
// ==UserScript== // @name Descargar Video de Enlace Externo // @namespace https://gnulaseries.nu/ // @version 1.3 // @description Detecta reproductores externos (como Vidmoly) y agrega un icono para descargar el video. // @author Tu Nombre // @match https://gnulaseries.nu/capitulo/* // @grant none // ==/UserScript== (function () { 'use strict'; // Función para verificar si existe un iframe en la página function checkIframe() { const iframe = document.querySelector('iframe'); if (iframe && iframe.src) { console.log('Iframe detectado:', iframe.src); // Cargar el contenido del iframe y analizarlo monitorIframe(iframe); } else { console.log('No se encontró ningún iframe. Reintentando...'); setTimeout(checkIframe, 1000); // Reintenta cada segundo } } // Función para analizar el contenido del iframe function monitorIframe(iframe) { // Crear un observer para detectar si cambia su contenido const observer = new MutationObserver(() => { const iframeDocument = iframe.contentDocument || iframe.contentWindow.document; const video = iframeDocument.querySelector('video'); // Busca el reproductor dentro del iframe if (video && video.src) { console.log('Reproductor de video encontrado en el iframe:', video.src); addDownloadIcon(video); observer.disconnect(); // Detener la observación una vez que se encuentra el video } }); observer.observe(iframe, { childList: true, subtree: true }); } // Función para agregar el ícono de descarga function addDownloadIcon(videoPlayer) { if (document.querySelector('#download-icon')) return; // Evitar duplicados const downloadIcon = document.createElement('div'); downloadIcon.id = 'download-icon'; downloadIcon.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="36px" height="36px"> <path d="M0 0h24v24H0z" fill="none"/> <path d="M5 20h14v-2H5v2zm7-18L5.33 6.03h3.34V15h2.66V6.03h3.34z"/> </svg> `; downloadIcon.style.position = 'fixed'; downloadIcon.style.bottom = '20px'; downloadIcon.style.right = '20px'; downloadIcon.style.zIndex = '1000'; downloadIcon.style.cursor = 'pointer'; downloadIcon.style.backgroundColor = 'rgba(0, 0, 0, 0.6)'; downloadIcon.style.borderRadius = '50%'; downloadIcon.style.padding = '10px'; downloadIcon.addEventListener('click', () => { const videoSrc = videoPlayer.src; if (videoSrc) { console.log('Descargando video:', videoSrc); const a = document.createElement('a'); a.href = videoSrc; a.download = 'video.mp4'; document.body.appendChild(a); a.click(); document.body.removeChild(a); } else { alert('No se encontró la fuente del video.'); } }); document.body.appendChild(downloadIcon); } // Inicia la detección del iframe checkIframe(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址