// ==UserScript== // @name 红狐弹幕解析+自动播放 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 红狐自动播放和弹幕解析整合版 // @author Aomine // @match *.rdfplayer.mrgaocloud.com/* // @match *:rdfplayer.mrgaocloud.com/player/* // @match *v.qq.com/x* // @match *v.qq.com/p* // @match *v.qq.com/cover* // @match *v.qq.com/tv/* // @match *.youku.com/v* // @match *m.youku.com/* // @match *.iqiyi.com/v_* // @match *.iqiyi.com/w_* // @match *.iqiyi.com/a_* // @match *.iq.com/play/* // @match *.bilibili.com/video/* // @match *.bilibili.com/anime/* // @match *.bilibili.com/bangumi/play/* // @match *.bilibili.com/s/* // @match *.pptv.com/show/* // @match *.acfun.cn/* // @license GPL License // @icon data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA5MSA5MSIgaWQ9IkxheWVyXzEiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojNEU3QTlFO30NCgkuc3Qxe2ZpbGw6I0YwQURBQjt9DQo8L3N0eWxlPgoNPGc+Cg08Zz4KDTxnPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTU1LjQsNTMuNmMyLjEtMi4xLDMuMi00LjgsMS43LThjLTIuMy00LjctMTAuMy01LjUtMTMuMy0xLjNjLTAuNiwwLjgsMC4xLDEuOCwwLjgsMi4xICAgICBjMi4zLDAuOCw1LjMtMSw3LjQsMC40YzMuNiwyLjMtMC44LDUuMi0zLjIsNS45Yy0yLjcsMC44LTEuNiw0LjksMS4yLDQuMmMzLjctMC45LDYuMSwyLjgsNC40LDZjLTEuNywzLTUuMywzLjItOCwxLjcgICAgIGMtMy43LTItOC4xLDMuMS00LjYsNmMyLjgsMi40LDcuNiwxLjcsMTAuOCwwLjNjMy4xLTEuNCw1LjctNCw2LjYtNy40QzYwLjEsNTkuNiw1OC40LDU1LjYsNTUuNCw1My42eiIvPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTMzLjIsMjAuOWMtMi44LDEuNS01LjEsMy45LTcuMSw2LjRjLTIuNC0zLjEtNS42LTYuMi05LjMtNi4zYy0xLjcsMC0yLjUsMi4xLTEuMywzLjJjMi45LDMsNiw1LjMsOC4zLDguOSAgICAgYzEuMSwxLjgsMy40LDEuNiw0LjYsMGMyLjMtMy4xLDUuMy01LjMsOC4zLTcuOEMzOS4xLDIzLjIsMzUuOSwxOS40LDMzLjIsMjAuOXoiLz4KDTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03MS45LDIxLjdjLTIuOCwxLjUtNS4xLDMuOS03LjEsNi40Yy0yLjQtMy4xLTUuNi02LjItOS4zLTYuM2MtMS43LDAtMi41LDIuMS0xLjMsMy4yYzIuOSwzLDYsNS4zLDguMyw4LjkgICAgIGMxLjEsMS44LDMuNCwxLjYsNC42LDBjMi4zLTMuMSw1LjMtNS4zLDguMy03LjhDNzcuOSwyNCw3NC43LDIwLjIsNzEuOSwyMS43eiIvPgoNPC9nPgoNPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwLjQsNTIuMWMxLjQtMS40LDIuOC0yLjcsNC4yLTQuMWMxLjQtMS40LDMuNC0yLjcsMy40LTQuOGMwLTEuMi0xLTIuMi0yLjItMi4yYy0yLjMsMC4xLTMuNSwyLjItNC44LDMuOCAgICBjLTEuMiwxLjYtMi4yLDMuNS0zLjIsNS4zQzcuMSw1MS43LDkuMSw1My41LDEwLjQsNTIuMUwxMC40LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjEuMiw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzE4LjMsNTIuNSwyMC4xLDUzLjYsMjEuMiw1Mi44TDIxLjIsNTIuOHoiLz4KDTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02NS42LDUyLjFjMS40LTEuNCwyLjgtMi43LDQuMi00LjFjMS40LTEuNCwzLjQtMi43LDMuNC00LjhjMC0xLjItMS0yLjItMi4yLTIuMmMtMi4zLDAuMS0zLjUsMi4yLTQuOCwzLjggICAgYy0xLjIsMS42LTIuMiwzLjUtMy4yLDUuM0M2Mi4zLDUxLjcsNjQuMyw1My41LDY1LjYsNTIuMUw2NS42LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNNzYuNCw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzczLjUsNTIuNSw3NS4zLDUzLjYsNzYuNCw1Mi44TDc2LjQsNTIuOHoiLz4KDTwvZz4KDTwvZz4KDTwvc3ZnPg== // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 弹幕解析功能(第一个脚本内容) var am = false; var moving = false; var logo = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA5MSA5MSIgaWQ9IkxheWVyXzEiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojNEU3QTlFO30NCgkuc3Qxe2ZpbGw6I0YwQURBQjt9DQo8L3N0eWxlPgoNPGc+Cg08Zz4KDTxnPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTU1LjQsNTMuNmMyLjEtMi4xLDMuMi00LjgsMS43LThjLTIuMy00LjctMTAuMy01LjUtMTMuMy0xLjNjLTAuNiwwLjgsMC4xLDEuOCwwLjgsMi4xICAgICBjMi4zLDAuOCw1LjMtMSw3LjQsMC40YzMuNiwyLjMtMC44LDUuMi0zLjIsNS45Yy0yLjcsMC44LTEuNiw0LjksMS4yLDQuMmMzLjctMC45LDYuMSwyLjgsNC40LDZjLTEuNywzLTUuMywzLjItOCwxLjcgICAgIGMtMy43LTItOC4xLDMuMS00LjYsNmMyLjgsMi40LDcuNiwxLjcsMTAuOCwwLjNjMy4xLTEuNCw1LjctNCw2LjYtNy40QzYwLjEsNTkuNiw1OC40LDU1LjYsNTUuNCw1My42eiIvPgoNPHBhdGggY2xhc3M9InN0MCIgZD0iTTMzLjIsMjAuOWMtMi44LDEuNS01LjEsMy45LTcuMSw2LjRjLTIuNC0zLjEtNS42LTYuMi05LjMtNi4zYy0xLjcsMC0yLjUsMi4xLTEuMywzLjJjMi45LDMsNiw1LjMsOC4zLDguOSAgICAgYzEuMSwxLjgsMy40LDEuNiw0LjYsMGMyLjMtMy4xLDUuMy01LjMsOC4zLTcuOEMzOS4xLDIzLjIsMzUuOSwxOS40LDMzLjIsMjAuOXoiLz4KDTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03MS45LDIxLjdjLTIuOCwxLjUtNS4xLDMuOS03LjEsNi40Yy0yLjQtMy4xLTUuNi02LjItOS4zLTYuM2MtMS43LDAtMi41LDIuMS0xLjMsMy4yYzIuOSwzLDYsNS4zLDguMyw4LjkgICAgIGMxLjEsMS44LDMuNCwxLjYsNC42LDBjMi4zLTMuMSw1LjMtNS4zLDguMy03LjhDNzcuOSwyNCw3NC43LDIwLjIsNzEuOSwyMS43eiIvPgoNPC9nPgoNPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwLjQsNTIuMWMxLjQtMS40LDIuOC0yLjcsNC4yLTQuMWMxLjQtMS40LDMuNC0yLjcsMy40LTQuOGMwLTEuMi0xLTIuMi0yLjItMi4yYy0yLjMsMC4xLTMuNSwyLjItNC44LDMuOCAgICBjLTEuMiwxLjYtMi4yLDMuNS0zLjIsNS4zQzcuMSw1MS43LDkuMSw1My41LDEwLjQsNTIuMUwxMC40LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjEuMiw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzE4LjMsNTIuNSwyMC4xLDUzLjYsMjEuMiw1Mi44TDIxLjIsNTIuOHoiLz4KDTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02NS42LDUyLjFjMS40LTEuNCwyLjgtMi43LDQuMi00LjFjMS40LTEuNCwzLjQtMi43LDMuNC00LjhjMC0xLjItMS0yLjItMi4yLTIuMmMtMi4zLDAuMS0zLjUsMi4yLTQuOCwzLjggICAgYy0xLjIsMS42LTIuMiwzLjUtMy4yLDUuM0M2Mi4zLDUxLjcsNjQuMyw1My41LDY1LjYsNTIuMUw2NS42LDUyLjF6Ii8+Cg08cGF0aCBjbGFzcz0ic3QxIiBkPSJNNzYuNCw1Mi44YzEuNC0xLjEsMi44LTIuMiw0LjItMy4zYzEuMy0xLjEsMy4xLTIuMiwzLjgtMy44YzEtMi4yLTEuMS00LjktMy41LTMuNWMtMS43LDAuOS0yLjYsMi45LTMuNiw0LjQgICAgYy0xLDEuNS0yLDMuMS0yLjksNC43QzczLjUsNTIuNSw3NS4zLDUzLjYsNzYuNCw1Mi44TDc2LjQsNTIuOHoiLz4KDTwvZz4KDTwvZz4KDTwvc3ZnPg==";; // 如果当前网址是 https://rdfplayer.mrgaocloud.com/,不创建图标 if (window.location.hostname !== 'rdfplayer.mrgaocloud.com') { // 拖拽功能 var startDrag = function(target) { var getCss = function(o, key) { return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o, false)[key]; }; var params = { left: 0, top: 0, currentX: 0, currentY: 0, rectLeft: 0, rectTop: 0, rectRight: 0 }; if (getCss(target, "position") === "static") { target.style.position = "relative"; } if (getCss(target, "left") !== "auto") { params.left = getCss(target, "left"); } if (getCss(target, "top") !== "auto") { params.top = getCss(target, "top"); } target.addEventListener("mousedown", function(event) { moving = true; params.rectLeft = target.getBoundingClientRect().left + document.body.scrollLeft; params.rectTop = target.getBoundingClientRect().top + document.body.scrollTop; params.rectRight = document.documentElement.clientWidth - target.getBoundingClientRect().right; if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } var e = event; params.currentX = e.clientX; params.currentY = e.clientY; document.addEventListener("mousemove", function(event) { if (moving == false) { return 0; } am = true; var e = event ? event : window.event; var nowX = e.clientX, nowY = e.clientY; var disX = nowX - params.currentX, disY = nowY - params.currentY; if (disX < 0 && Math.abs(disX) > params.rectLeft) { disX = -params.rectLeft; } if (disY < 0 && Math.abs(disY) > params.rectTop) { disY = -params.rectTop; } if (disX > 0 && disX > params.rectRight) { disX = params.rectRight; } target.style.left = parseInt(params.left) + disX + "px"; target.style.top = parseInt(params.top) + disY + "px"; }); document.addEventListener("mouseup", function() { moving = false; setTimeout(function() { am = false; }, 50); if (getCss(target, "left") !== "auto") { params.left = getCss(target, "left"); } if (getCss(target, "top") !== "auto") { params.top = getCss(target, "top"); } }); }); }; // 创建图标 var ele = document.createElement("img"); ele.id = "imgid"; ele.style = "margin: 250px 0px 0px 10px;width:60px;position: fixed;top:0px;z-index: 99999;"; ele.src = logo; document.body.appendChild(ele); startDrag(document.getElementById('imgid')); // 点击事件:跳转解析站并传递B站地址 document.getElementById("imgid").addEventListener("click", function(e) { if (am == false) { var videoUrl = encodeURIComponent(window.location.href); var targetUrl = `https://rdfplayer.mrgaocloud.com/?url=${videoUrl}`; // 直接打开带URL参数的解析站 window.open(targetUrl, "_blank"); } }); } // 自动播放功能(第二个脚本内容) let hasPlayed = false; const iframe = document.getElementById("RDFPLAYER_VOD_IFRAME"); if (!iframe) { console.error("Iframe not found!"); return; } function handleIframeLoad() { if (hasPlayed) return; hasPlayed = true; setTimeout(function() { const playButton = document.getElementById("ssdi"); if (playButton) { playButton.click(); } else { console.error("Play button not found!"); } const message = { action: "play" }; iframe.contentWindow.postMessage(message, "*"); enterFullscreen(); }, 3000); } iframe.onload = handleIframeLoad; let previousSrc = iframe.src; const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type === 'attributes' && mutation.attributeName === 'src') { previousSrc = iframe.src; iframe.onload = handleIframeLoad; } }); }); observer.observe(iframe, { attributes: true }); if (!iframe.src || iframe.src === "https://rdfplayer.mrgaocloud.com/player/?url=") { iframe.src = "https://rdfplayer.mrgaocloud.com/player/?url=VALID_VIDEO_URL"; } function enterFullscreen() { if (iframe.requestFullscreen) { iframe.requestFullscreen(); } else if (iframe.mozRequestFullScreen) { iframe.mozRequestFullScreen(); } else if (iframe.webkitRequestFullscreen) { iframe.webkitRequestFullscreen(); } else if (iframe.msRequestFullscreen) { iframe.msRequestFullscreen(); } else { console.error("Fullscreen API is not supported."); } } })();