您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
using desktop player watching Bilibili and Youtube live
// ==UserScript== // @name LIVE in Desktop Palyer // @namespace http://tampermonkey.net/LIVEinDesktopPlayer // @version 0.3.1 // @description using desktop player watching Bilibili and Youtube live // @author luoyayu // @match https://live.bilibili.com/* // @match https://www.youtube.com/watch* // @grant GM_xmlhttpRequest // ==/UserScript== // THE CODE USE `Potplayer` FOR EXAMPLE // WINDOWS USER NOTICE /* paste below code into a file named `potplayer.reg`, then click and run it Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\potplayer\shell\open\command] @="cmd /k ( set \"var=%1\" & call set var=%%var:potplayer://=%% & call C:\Program Files\DAUM\PotPlayer\PotPlayerMini64.exe %%var%%)" */ // Unix USER NOTICE /* * Create a custom URL Protocol Handler for desktop player */ (function() { 'use strict'; const host = window.location.host; const int = window.setInterval(isPaused, 1000); const end_int = window.setTimeout(()=>{ window.clearInterval(int); }, 1000*5); function jump2player(video_url) { const jump_link = document.createElement('a'); jump_link.setAttribute('href', 'potplayer://' + video_url); // !! fill your custom url scheme !! jump_link.click(); } function isPaused() { let d; if (host === 'www.youtube.com') { d = document.getElementsByClassName('ytp-play-button ytp-button')[0]; // btn } else if (host === 'live.bilibili.com') { d = document.getElementsByClassName('bilibili-live-player relative')[0]; // player } if (d !== undefined) { let state = undefined; if (host === 'www.youtube.com') { state = document.getElementsByClassName( 'ytp-play-button ytp-button')[0].getElementsByClassName( 'ytp-svg-fill')[0].getAttribute('d') === 'M 12,25 19,25 19,11 12,11 z M 19,25 26,25 26,11 19,11 z'; } else if (host === 'live.bilibili.com') { state = d.getAttribute('data-video-state') === 'playing'; } if (state === false) { // paused // window.clearInterval(int); } else { if (host === 'www.youtube.com') { d.click(); } else if (host === 'live.bilibili.com') { document.getElementsByClassName('blpui-btn icon-btn')[0].click(); // btn } } } } if (host === 'www.youtube.com') { const is_live = document.getElementsByClassName( 'ytp-live-badge')[0].getAttribute('disabled').length === 0; if (is_live) { jump2player(window.location.href); } } else { const cid = window.location.pathname.substr(1); if (!isNaN(cid)) { GM_xmlhttpRequest({ method: 'GET', url: 'https://api.live.bilibili.com/room/v1/Room/playUrl?platform=h5&cid=' + cid, onload: xhr => { let ret = xhr.response; jump2player(JSON.parse(ret).data.durl[0].url); }, }); } } })();