您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically redirect to mpv player when playing online video
// ==UserScript== // @name Auto play in MPV // @description Automatically redirect to mpv player when playing online video // @author lxl66566 // @namespace https://github.com/lxl66566/auto-play-in-mpv // @version 0.1.2 // @icon https://mpv.io/images/mpv-logo-128-0baae5aa.png // @run-at document-start // @license MIT // @grant window.close // @match *://*.bilibili.com/* // @match *://bilibili.com/* // @match *://youtube.com/* // @match *://*.youtube.com/* // ==/UserScript== (function () { // rome-ignore lint/suspicious/noRedundantUseStrict: "use strict"; // 要拦截的URL模式 const targetPatterns = [ "https://www.bilibili.com/video/*", "https://live.bilibili.com/*", "https://www.bilibili.com/bangumi/play/*", "https://www.youtube.com/watch*", "https://www.youtube.com/playlist*", ]; const socket = new WebSocket("ws://localhost:5777"); socket.onopen = function () { console.log("WebSocket connection established"); }; socket.onmessage = function (event) { console.log("Message from server: ", event.data); }; socket.onclose = function () { console.log("WebSocket connection closed"); }; socket.onerror = function (error) { console.error("WebSocket error: ", error); }; function sendUrlToServerAndClose(url) { if (socket.readyState === WebSocket.OPEN) { socket.send(url); console.log("auto-play-in-mpv: url send to socket"); // close window if received any ack message socket.onmessage = function (event) { console.log("auto-play-in-mpv: received ack server"); socket.close(); window.close(); }; } else { console.error("WebSocket is not open"); // do not close window } } function trigger() { const url = window.location.href; console.log("auto-play-in-mpv: get url: ", url); if (targetPatterns.some((pattern) => url.match(pattern))) { console.log("auto-play-in-mpv: url match"); sendUrlToServerAndClose(url); } } window.addEventListener("DOMContentLoaded", trigger, false); // for bilibili window.addEventListener("hashchange", trigger, false); // for youtube // const originalOpen = window.open; // window.open = function (url, ...args) { // console.log("捕获到新页面打开请求:", url); // // return originalOpen.call(window, url, ...args); // 若允许则执行 // return null; // 若阻止则返回 null // }; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址