您需要先安装一个扩展,例如 篡改猴、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或关注我们的公众号极客氢云获取最新地址