💖 VIP视频解析

视频解析、多源切换、简洁易用、UI美观(支持"爱优腾芒"等多平台多解析源切换)

目前为 2025-03-03 提交的版本。查看 最新版本

// ==UserScript==
// @name        💖 VIP视频解析
// @namespace   https://gf.qytechs.cn/zh-CN/users/1409010-i-breathe
// @version     2.0
// @description 视频解析、多源切换、简洁易用、UI美观(支持"爱优腾芒"等多平台多解析源切换)
// @author      I-Breathe
// @run-at      document-start
// @match       http*://*.iqiyi.*/*
// @match       http*://*.qq.*/*
// @match       http*://*.youku.*/*
// @match       http*://*.bilibili.*/*
// @match       http*://*.mgtv.*/*
// @match       http*://*.sohu.*/*
// @match       http*://*.pptv.*/*
// @match       http*://*.le.*/*
// @match       http*://*.1905.*/*
// @match       http*://*.acfun.*/*
// @grant       none
// @grant       GM_setValue
// @grant       GM_getValue
// ==/UserScript==

(function() {
    'use strict';

    const CONFIG = {
        buttonSize: 55,                // 按钮尺寸(PC端60 移动端建议50 可自行微调)
        buttonRight: '25px',          // 图标距底部右侧距离 (PC端35 移动端建议15 可自行微调)
        buttonBottom: '25px',         // 图标距底部距离(PC端35 移动端建议15 可自行微调)
        imageUrl: 'https://img13.360buyimg.com/ddimg/jfs/t1/121241/11/19612/181715/5fbac680E636138b5/267dd280e727aff4.jpg', 
        opacity: 1,  
        breatheColors: ['#FF00FF95','#00FAFF95','#FFFF0095','#00FFFF95','#00FF0095'], 
        breatheDuration: 15, 
        glowSize: 7,  
        parseUrl: GM_getValue('selectedParseUrl', 'https://www.yemu.xyz/?url='), 
        parseUrls: [
            ["https://bd.jx.cn/?url=", "冰豆弹幕"],
            ["https://am1907.top/?jx=", "1907解析"],
            ["https://jx.xmflv.cc/?url=", "虾米解析"],
            ["https://jx.xymp4.cc/?url=", "咸鱼解析"],
            ["https://www.yemu.xyz/?url=", "夜幕解析"],
            ["https://jx.77flv.cc/?url=", "77云解析"],
            ["https://www.8090g.cn/jiexi/?url=", "8090g"],
            ["https://jx.playerjy.com/?url=", "PlayerJy"],
            ["https://www.ckplayer.vip/jiexi/?url=", "CkPlay"],
            ["https://www.pangujiexi.com/jiexi/?url=", "盘古解析"],
            ["https://jx.hls.one/?url=", "hls解析"],
            ["https://jx.973973.xyz/?url=", "973播放"],
            ["https://jx.nnxv.cn/tv.php?url=", "七哥解析"],
            ["https://jx.2s0.cn/player/?url=", "极速解析"],
            ["https://rdfplayer.mrgaocloud.com/player/?url=", "红狐解析"],
            ["https://jx.m3u8.tv/jiexi/?url=", "M3U8"],
            ["https://www.pouyun.com/?url=", "剖云解析"],
            ["https://www.playm3u8.cn/jiexi.php?url=", "playm3u8"],
            ["https://yparse.ik9.cc/?url=", "ik9云解析"],
            ["https://xiaoapi.cn/API/jx_txsp.php?url=", "腾讯API解析"],
            ["https://xiaoapi.cn/API/jx_yk.php?url=", "优酷API解析"],
            ["https://xiaoapi.cn/API/zs_ewm.php?msg=", "网址二维码生成"],
            ["https://www.yemu.xyz/?url=", "无法播放更换接口尝试"],
            ["https://bd.jx.cn/?url=", "• • •"]
        ]
    };

    let floatingButton; 
    let clickTimer; 

const styleSheet = document.createElement('style');
styleSheet.textContent = `

    .floating-button {
        position: fixed;
        z-index: 999999;
        cursor: pointer;
        border-radius: 50%;
        transition: all 0.3s ease; 
    }

    .source-list {
        position: fixed;
        background: #fff; 
        border-radius: 16px; 
        box-shadow: 0 2px 10px rgba(0,0,0,0.2);
        z-index: 999999; 
        padding: 1px 1px; 
        min-width: 150px; 
        background: rgba(0,0,0,0.5); 
        backdrop-filter: blur(10px);  
        border: 1px solid rgba(255,255,255,0.1); 
        color: #fff; 
        font-family: "Microsoft YaHei", sans-serif; 
    }

    .source-item {
        padding: 5px 20px;       /*字体列表尺寸 建议2-6,15-30px ,根据终端微调 */
        border-radius: 50px; 
        cursor: pointer;
        font-size: 15px;         /* 建议字体大小12-16px ,根据终端微调 */
        white-space: nowrap; 
        transition: all 0.2s; 
        text-align: center;

        color: inherit;     
        /* color: #333; */  

        &:hover {
            background: rgba(255,255,255,0.1);
            /* color: #FF4081; */ 
        }

        &[data-selected="true"] {
            color: #FF4081; 
            font-weight: bold;
        }
    }


    @keyframes breathe {
        0% { box-shadow: 0 0 ${CONFIG.glowSize}px ${CONFIG.glowSize}px ${CONFIG.breatheColors[0]}; }
        33% { box-shadow: 0 0 ${CONFIG.glowSize}px ${CONFIG.glowSize}px ${CONFIG.breatheColors[1]}; }
        66% { box-shadow: 0 0 ${CONFIG.glowSize}px ${CONFIG.glowSize}px ${CONFIG.breatheColors[2]}; }
        100% { box-shadow: 0 0 ${CONFIG.glowSize}px ${CONFIG.glowSize}px ${CONFIG.breatheColors[0]}; }
    }
`;
document.head.appendChild(styleSheet);

    function createFloatingButton() {
        const btn = document.createElement('img');
        btn.src = CONFIG.imageUrl;
        btn.className = 'floating-button';
        btn.style.cssText = `
            right: ${CONFIG.buttonRight};
            bottom: ${CONFIG.buttonBottom};
            width: ${CONFIG.buttonSize}px;
            height: ${CONFIG.buttonSize}px;
            opacity: ${CONFIG.opacity};
            animation: breathe ${CONFIG.breatheDuration}s infinite;
        `;
        return btn;
    }


    function createSourceListItem([url, name]) {
        const item = document.createElement('div');
        item.className = 'source-item';
        item.textContent = name;
        item.style.color = url === CONFIG.parseUrl ? '#ECECEC' : '#00000099';  /* 列表选中和字体颜色 , 有需要就自己调吧*/

        item.addEventListener('mouseenter', () =>
            item.style.background = '#f5f5f525');  
        item.addEventListener('mouseleave', () =>
            item.style.background = '');

        item.addEventListener('click', (e) => {
            e.stopPropagation();
            CONFIG.parseUrl = url;
            GM_setValue('selectedParseUrl', url);
            document.getElementById('parse-source-list')?.remove();
            floatingButton.style.boxShadow =
                `0 0 6px 6px ${CONFIG.breatheColors[0]}`;
        });

        return item;
    }

    function createSourceList() {
        const existingList = document.getElementById('parse-source-list');
        if (existingList) existingList.remove();

        const list = document.createElement('div');
        list.id = 'parse-source-list';
        list.className = 'source-list';
        list.style.cssText = `
            right: ${CONFIG.buttonRight};
            bottom: calc(${CONFIG.buttonBottom} + ${CONFIG.buttonSize + 10}px);
        `;

        CONFIG.parseUrls.forEach(item =>
            list.appendChild(createSourceListItem(item)));

        const closeHandler = e => {
            if (!list.contains(e.target) && e.target !== floatingButton) {
                list.remove();
                document.removeEventListener('click', closeHandler);
            }
        };
        document.addEventListener('click', closeHandler);

        return list;
    }


    function initButtonEvents() {

        floatingButton.addEventListener('mouseenter', () => {
            floatingButton.style.opacity = '1';
            floatingButton.style.transform = 'scale(1.1)';
        });
        floatingButton.addEventListener('mouseleave', () => {
            floatingButton.style.opacity = CONFIG.opacity;
            floatingButton.style.transform = 'none';
        });

        floatingButton.addEventListener('click', () => {
            clearTimeout(clickTimer);
            clickTimer = setTimeout(() =>
                window.open(CONFIG.parseUrl + location.href), 300);
        });
        floatingButton.addEventListener('dblclick', () => {
            clearTimeout(clickTimer);
            document.body.appendChild(createSourceList());
        });
    }

    function init() {
        floatingButton = createFloatingButton();
        document.body.appendChild(floatingButton);

        initButtonEvents();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址