vip视频外嵌解析

vip视频解析 -【外嵌解析+带弹幕】目前支持: 腾讯,爱奇艺,优酷, 芒果tv, 脚本特点✔️简洁高效✔️方便快捷

// ==UserScript==
// @name      vip视频外嵌解析
// @namespace https://greasyfork.org/zh-CN
// @version      0.0.2
// @author       Bsutss
// @namespace  vip视频解析
// @description   vip视频解析 -【外嵌解析+带弹幕】目前支持: 腾讯,爱奇艺,优酷, 芒果tv, 脚本特点✔️简洁高效✔️方便快捷
// @match        https://www.iqiyi.com/*
// @match        https://v.qq.com/x/cover/*
// @match        https://www.mgtv.com/b/*
// @match        https://v.youku.com/v_show/*
// @match        https://youku.com/v_show/*
// @match        https://www.bilibili.com/*
// @license       MIT
// @grant         None
// ==/UserScript==

(function () {
  "use strict";

  var style = document.createElement("style");
  style.textContent = `
        ::-webkit-scrollbar {
            width: 10px !important;
        }

        ::-webkit-scrollbar-thumb {
            background: #C1C1C1 !important;
            border-radius: 10px !important;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: #9e9e !important;
        }

        .no-select {
            user-select: none;
        }

        .button-container {
            position: fixed;
            top: 50%;
            left: 60px;
            transform: translate(0, -50%);
            z-index: 99999999;
            display: none;
            grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
            grid-gap: 10px;
        }

        .vip-button {
            background: #605aca;
            border: 0;
            padding: 0 25px;
            height: 30px;
            padding:0 10px;
            color: #fff;
            cursor:pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            font-weight: bold;
            margin: 5px 0;
        }

        .vip-button:hover {
            background: #605aca;
            transform: scale(1.1);
        }
    `;

  document.head.appendChild(style);

  var YQ_cube = document.createElement("div");
  YQ_cube.className = "no-select";
  YQ_cube.style.cssText = `
        width: 50px;
        height: 50px;
        border-radius: 50%;
        background-color: #605aca;
        position: fixed;
        left: 0;
        top: 50%;
        cursor: pointer;
        z-index: 99999999;
        transform: translate(0, -50%);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: white;
        font-size: 13px;
        font-weight: bold;
        box-shadow: rgb(0 0 0 / 30%) 0px 2px 5px;
    `;

  YQ_cube.textContent = "vip解析";
  YQ_cube.title = "微信公众号:残月影视";

  document.body.appendChild(YQ_cube);

  // 引入解析接口
  var Apilist = [ 
    { name: "解析线路1", url: "https://www.yemu.xyz/?url=" },
    { name: "解析线路2", url: "https://jx.aidouer.net/?url=" },
    { name: "解析线路3", url: "https://jx.xmflv.com/?url=" },
    //2023-10-13 新增
    { name: "解析线路4", url: "https://bd.jx.cn/player/?url=" },
    { name: "解析线路5", url: "https://api.qianqi.net/vip/?url=" },
  ];

  var buttonContainer = document.createElement("div");
  buttonContainer.className = "button-container";

  Apilist.forEach(function (api) {
    var button = document.createElement("button");
    button.className = "vip-button";
    button.textContent = api.name;
    button.addEventListener("click", function () {
      // 处理按钮点击事件,跳转到解析页面
      window.open(api.url + window.location.href, "_blank");
    });
    buttonContainer.appendChild(button);
  });

  document.body.appendChild(buttonContainer);
  var flag = 1;
  YQ_cube.addEventListener("click", function () {
    // 检查是否已同意协议
    var agreedToTerms = localStorage.getItem("agreedToTerms");
    // 如果未同意协议,显示协议弹窗
    if (!agreedToTerms) {
      var termsPopup = confirm(
        "免责声明:1、VIP视频解析中所用到的解析接口来自于网络,版权问题请联系相关解析接口所有者 2、为创造良好的创作氛围,请大家支持正版 3、脚本仅用于学习,切勿用于任何商业等其它用途 4、个别解析线路带有可选的额外收费提速功能,这是线路行为,与脚本作者无关 5、如发现有线路含有广告,请千万不要相信,并请及时反馈,我会第一时间移除该线路 6、点击确定,即表明你已经明确使用脚本可能带来的风险,且愿意自行承担相关风险,对于风险网站不承担任何责任, 以上内容请知晓 "
      );
      // 如果用户同意,设置同意标志并继续执行脚本
      if (termsPopup) {
        localStorage.setItem("agreedToTerms", "true");
      } else {
        alert("您取消了协议,脚本无法使用 确定后会恢复正常 !");
        return;
      }
    }

    if (flag === 1) {
      buttonContainer.style.display = "block";
      YQ_cube.innerHTML = "隐藏";
      flag = 0;
    } else {
      buttonContainer.style.display = "none";
      YQ_cube.innerHTML = "vip解析";
      flag = 1;
    }
  });
})();