// ==UserScript== // @name dilidili flash to html5 fix // @namespace http://tampermonkey.net/ // @version 0.2 // @description 把dilidili的Flash播放器替换为HTML5播放器 // @author niphor // @match http*://*.dilidili.com/watch* // @match http*://*.dilidili.wang/watch* // @match http*://*.dilidili.name/watch* // @grant none // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @downloadURL none // ==/UserScript== (function () { 'use strict'; function loadScriptOrCSS(src){ const isStyle = src.slice(-4) ==='.css'; let dom = document.createElement(isStyle?'link':"script"); if(isStyle){ dom.rel = "stylesheet"; dom.href = src; } else { dom.src = src; } document.head.appendChild(dom); return dom; } // 引用类库 loadScriptOrCSS('https://cdn.bootcss.com/hls.js/8.0.0-beta.3/hls.min.js'); loadScriptOrCSS('https://cdn.bootcss.com/dplayer/1.25.0/DPlayer.min.css'); loadScriptOrCSS('https://cdn.bootcss.com/dplayer/1.25.0/DPlayer.min.js'); // 避免播放器太大 GM_addStyle('.dplayer {max-width:100%;max-height:100%;}'); // 找到原播放器 let playerWrap = document.getElementsByClassName("player_main")[0]; let videoSrc; if(!playerWrap){ return } videoSrc = playerWrap.children[0].src.split("=")[1]; // 不是m3u8的就不改 if (videoSrc.slice(-4) != "m3u8") { return } // 新的video let player = document.createElement("div"); player.setAttribute("id", "dplayer"); // 替换播放器 while (playerWrap.firstChild) { playerWrap.removeChild(playerWrap.firstChild); } playerWrap.appendChild(player); // 页面加载完毕后运行播放器 window.addEventListener('load', function(){ new window.DPlayer({ container: document.getElementById('dplayer'), autoplay: true, video: { url: videoSrc, type:'hls' } }); }, false); })();