Greasy Fork is available in English.

dilidili flash to html5 fix

把dilidili的Flash播放器替换为HTML5播放器

Version au 23/02/2019. Voir la dernière version.

// ==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
// ==/UserScript==

(function () {
    'use strict';

    function loadScriptOrCSS(src){
        var isStyle = src.slice(-4) ==='.css';
        var 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');

    // 避免播放器太大
    var newStyle = document.createElement("style");
    newStyle.innerText = ".dplayer {max-width:100%;max-height:100%;}";
    document.head.appendChild(newStyle);

    // 找到原播放器
    var playerWrap = document.getElementsByClassName("player_main")[0];
    var videoSrc;

    if(!playerWrap){
        return
    }

    videoSrc = playerWrap.children[0].src.split("=")[1];

    // 不是m3u8的就不改
    if (videoSrc.slice(-4) != "m3u8") {
        return
    }

    // 新的video
    var 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);
})();