// ==UserScript==
// @name 🎬追剧系列--爱优腾芒VIP视频破解(精简版)
// @namespace http://tampermonkey.net/
// @version 1.2.2
// @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/*
// @license MIT
// @grant none
// ==/UserScript==
(function () {
"use strict";
// 加载 SweetAlert2 并确保样式正确加载
const loadSweetAlert = () => {
const swalCss = document.createElement("link");
swalCss.rel = "stylesheet";
swalCss.href = "";
document.head.appendChild(swalCss);
const swalScript = document.createElement("script");
swalScript.src = "https://cdn.jsdelivr.net/npm/sweetalert2@11";
document.head.appendChild(swalScript);
return new Promise((resolve) => {
swalScript.onload = resolve;
});
};
// 添加全局样式,确保与其他组件不冲突
const addGlobalStyle = () => {
const style = document.createElement("style");
style.textContent = `
/* 通用样式 */
::-webkit-scrollbar {
width: 10px !important;
}
::-webkit-scrollbar-thumb {
background: #8e8e8e !important;
border-radius: 10px !important;
}
::-webkit-scrollbar-thumb:hover {
background: #555555 !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: linear-gradient(45deg, #ff8c00, #ffd700); /* 渐变色背景 */
border: 0;
padding: 0 25px;
height: 30px;
color: #000;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: bold;
margin: 5px 0;
transition: transform 0.3s, background-color 0.3s;
border-radius: 5px; /* 圆角效果 */
}
.vip-button:hover {
background: linear-gradient(45deg, #ffa500, #ff4500); /* hover 状态下的渐变色 */
}
/* 顶部作者介绍样式 */
.author-info {
background-color: #ff4500; /* 显眼的橙红色背景 */
color: #ffffff; /* 白色字体 */
padding: 10px;
text-align: center;
font-weight: bold;
border-radius: 5px;
margin-bottom: 10px;
}
/* 底部链接按钮样式 */
.author-link-button {
background: linear-gradient(45deg, #1e90ff, #00bfff); /* 渐变色背景 */
color: #ffffff; /* 白色字体 */
padding: 8px 12px;
text-align: center;
font-weight: bold;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
display: inline-block; /* 使按钮宽度自适应文字 */
}
.author-link-button:hover {
background: linear-gradient(45deg, #1c86ee, #87cefa); /* 渐变色的 hover 效果 */
color:#fff !important;
}
/* 确保 SweetAlert2 弹窗样式不受其他全局样式影响 */
.swal2-container {
z-index: 100000000 !important;
}
/* 关于作者样式 */
#about {
color:#ff0000;
line-height: 27px;
}
#about:hover {
font-weight: 900;
}
`;
document.head.appendChild(style);
};
// 创建解析按钮
const createParseButton = () => {
const parseButton = document.createElement("div");
parseButton.className = "no-select";
parseButton.style.cssText = `
width: 50px;
height: 50px;
border-radius: 50%;
background:linear-gradient(45deg, #ff8c00, #ffd700);
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: black;
font-size: 13px;
font-weight: bold;
box-shadow: rgb(0 0 0 / 30%) 0px 2px 5px;
`;
parseButton.textContent = "VIP";
parseButton.title = "公众号:软件小邓";
return parseButton;
};
// 创建作者介绍
const createAuthorInfo = () => {
const authorInfo = document.createElement("div");
authorInfo.className = "author-info";
authorInfo.textContent = "注:遇到无法解析的,请切换路线!";
return authorInfo;
};
// 创建底部访问作者博客的按钮
const createAuthorLinkButton = () => {
const authorLinkButton = document.createElement("a");
authorLinkButton.className = "author-link-button";
authorLinkButton.href = "https://link3.cc/rjxd";
authorLinkButton.target = "_blank";
authorLinkButton.textContent = "关于作者";
return authorLinkButton;
};
// 创建解析接口按钮容器
const createButtonContainer = (apiList) => {
const container = document.createElement("div");
container.className = "button-container";
// 添加作者介绍到按钮容器的顶部
const authorInfo = createAuthorInfo();
container.appendChild(authorInfo);
apiList.forEach((api) => {
const button = document.createElement("button");
button.className = "vip-button";
button.textContent = api.name;
button.addEventListener("click", (event) => {
event.stopPropagation(); // 防止点击按钮时关闭接口容器
window.open(`${api.url}${window.location.href}`, "_blank");
});
container.appendChild(button);
});
// 添加访问作者博客按钮到按钮容器的底部
const authorLinkButton = createAuthorLinkButton();
container.appendChild(authorLinkButton);
return container;
};
// 显示用户协议弹窗,并添加二维码
const showTermsPopup = async () => {
const result = await Swal.fire({
title: "用户协议",
html: `
<div style='text-align:left; font-size:14px;'>
免责声明:<br>
1. VIP视频解析中所用到的解析接口来自于网络,版权问题请联系相关解析接口所有者。<br>
2. 为创造良好的创作氛围,请大家支持正版。<br>
3. 脚本仅用于学习,切勿用于任何商业用途。<br>
4. 个别解析线路带有可选的额外收费提速功能,这是线路行为,与脚本作者无关。<br>
5. 如发现有线路含有广告,请千万不要相信,并请及时反馈,我会第一时间移除该线路。<br>
6. 点击同意,即表明你已经明确使用脚本可能带来的风险,且愿意自行承担相关风险,对于风险网站不承担任何责任。
<p style="color:#ff0000;margin-top:10px;">- 更新1:新增了可用路线,移除了失效路线!</p>
<p style="color:#ff0000;">- 更新2:代码架构重新构建,确保运行速度及稳定。</p>
<br><br>
<div style="text-align:center;">
<span>⭐️Zlibrary最新地址,各种实用软件,李跳跳最新规则等⭐️</span><br>
<span>请关注公众号:<b style="color:#0045ff;">软件小邓</b></span><br>
<a href="https://link3.cc/rjxd" target="_blank" id="about"> >>关于作者<< </a>
</div>
</div>`,
icon: "warning",
showCancelButton: true,
confirmButtonText: "我已仔细阅读协议并同意",
cancelButtonText: "取消",
reverseButtons: true,
});
if (result.isConfirmed) {
await Swal.fire({
title: "已确认",
text: "您已经同意用户协议。",
icon: "success",
timer: 2000,
showConfirmButton: false,
});
return true;
} else {
await Swal.fire({
title: "已取消",
text: "您取消了用户协议。",
icon: "error",
timer: 2000,
showConfirmButton: false,
});
return false;
}
};
// 主逻辑
const main = async () => {
await loadSweetAlert(); // 加载 SweetAlert2
addGlobalStyle();
const parseButton = createParseButton();
const apiList = [
// { name: "综合", url: "https://jx.bozrc.com:4433/player/?url=" },
{ name: "路线①", url: "https://jx.m3u8.tv/jiexi/?url=" },
{ name: "盘古", url: "https://www.pangujiexi.com/jiexi/?url=" },
{ name: "夜幕", url: "https://www.yemu.xyz/?url=" },
{ name: "爱豆", url: "https://jx.aidouer.net/?url=" },
{ name: "虾米", url: "https://jx.xmflv.com/?url=" },
// { name: "纯净1", url: "https://im1907.top/?jx=" },
{ name: "冰豆", url: "https://api.qianqi.net/vip/?url=" },
];
const buttonContainer = createButtonContainer(apiList);
document.body.appendChild(parseButton);
document.body.appendChild(buttonContainer);
let isVisible = false;
parseButton.addEventListener("click", async (event) => {
if (!localStorage.getItem("agreedToTerms")) {
const agreed = await showTermsPopup();
if (!agreed) {
// 用户取消,脚本不执行
return;
}
localStorage.setItem("agreedToTerms", "true");
}
isVisible = !isVisible;
buttonContainer.style.display = isVisible ? "block" : "none";
parseButton.textContent = isVisible ? "隐藏" : "VIP";
event.stopPropagation(); // 防止点击解析按钮时关闭接口容器
});
// 点击页面任意地方隐藏接口
document.addEventListener("click", () => {
if (isVisible) {
buttonContainer.style.display = "none";
parseButton.textContent = "VIP";
isVisible = false;
}
});
// 防止点击接口按钮时关闭接口容器
buttonContainer.addEventListener("click", (event) => {
event.stopPropagation();
});
};
main();
})();