// ==UserScript==
// @name BiliBili云端解析
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.2.2
// @description try to take over the world!
// @author Miro 鸭鸭 github.com/mmyo456/BiliAnalysis
// @match https://www.bilibili.com/video*
// @match https://www.bilibili.com/*bvid*
// @match https://live.bilibili.com/*
// @match https://music.163.com/song?id=*
// @downloadURL https://raw.gitmirror.com/mmyo456/BiliAnalysis/main/BiliCloudAnalysis.user.js
// @updateURL https://raw.gitmirror.com/mmyo456/BiliAnalysis/main/BiliCloudAnalysis.user.js
// @grant GM_xmlhttpRequest
// @grant GM_notification
// @grant GM_addStyle
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.2.1/jquery.min.js
// ==/UserScript==
// 20230405 修复解析1080p(需已登陆)
// 20230626 修复加载慢导致无法添加按钮
// 20230811 添加左上角和右下角解析按钮 加快按钮出现速度
// 20240305 适配网易云
// 20241029 重写了新的解析成功告知方式
// 20241031 换了提示图片
(function () {
'use strict';
// 添加提示框的样式
GM_addStyle(`
#notificationBox {
position: fixed;
bottom: -100px; /* 初始位置在视口之外 */
left: 50%;
transform: translateX(-50%);
width: 300px;
padding: 20px;
background-color: #333;
color: #fff;
text-align: center;
border-radius: 10px;
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);
opacity: 0;
transition: all 0.5s ease;
z-index: 9999;
}
#notificationBox h3 {
color: #fff; /* 使“解析成功”文本为白色 */
}
#notificationBox.show {
bottom: 20px; /* 提示框弹出位置 */
opacity: 1;
}
`);
// 创建提示框元素
const notificationBox = document.createElement('div');
notificationBox.id = 'notificationBox';
notificationBox.innerHTML = `
链接已复制到剪贴板
`; document.body.appendChild(notificationBox); // 创建右下角解析按钮 var BiliAnalysisbutton = ``; $("body").append(BiliAnalysisbutton); document.getElementById('BiliAnalysis8').addEventListener('click', clickButton); // 创建左上角解析按钮 var BiliAnalysisbutton1 = ``; $("body").append(BiliAnalysisbutton1); document.getElementById('BiliAnalysis9').addEventListener('click', clickButton); // 弹出提示框并复制链接 function clickButton() { let url; const currentUrl = window.location.href; if (currentUrl.includes("music.163.com")) { // 处理网易云 URL url = "https://jx.91vrchat.com/bl/?url=" + currentUrl; } else { // 处理 Bilibili 视频 URL const bvID = currentUrl.match(/BV[0-9a-zA-Z]*/); const bvParam = bvID ? bvID[0] : null; const pID = currentUrl.match(/p=[0-9]*/); const pParam = pID ? pID[0] : "p=1"; url = bvParam ? "https://jx.91vrchat.com/bl/?url=" + bvParam + "&" + pParam : "https://jx.91vrchat.com/bl/?url=" + currentUrl; } // 复制链接到剪贴板 navigator.clipboard.writeText(url).then(() => { // 显示提示框 notificationBox.classList.add('show'); // 设置定时器,在10秒后自动隐藏提示框 setTimeout(() => { notificationBox.classList.remove('show'); }, 10000); }).catch(e => console.error(e)); } })();