目前没有找到 b 站直播自动选择原画的油猴脚本,自己开发了一个,分享给大家使用
// ==UserScript==
// @name 哔哩哔哩直播自动原画
// @version 1.0
// @license MIT
// @author joe
// @icon https://www.bilibili.com/favicon.ico
// @match *://live.bilibili.com/*
// ==/UserScript==
(function () {
'use strict';
// 创建一个鼠标移动事件
var event = new MouseEvent('mousemove', {
'view': unsafeWindow,
'bubbles': true,
'cancelable': true
});
// 创建一个鼠标进入事件
var mouseenterEvent = new MouseEvent('mouseenter', {
'view': unsafeWindow,
'bubbles': true,
'cancelable': true
});
// 创建一个鼠标移出事件
var mouseleaveEvent = new MouseEvent('mouseleave', {
'view': unsafeWindow,
'bubbles': true,
'cancelable': true
});
// 等待 "live-player" 元素加载完成
var checkPlayerExist = setInterval(function() {
var player = document.getElementById('live-player');
if (player !== null) {
clearInterval(checkPlayerExist);
// 视频 触发鼠标移动事件
player.dispatchEvent(event);
// 网页全屏
var webpageMode = document.querySelector('#web-player-controller-wrap-el > div > div > div.right-area.svelte-4rgwwa > div:nth-child(2)');
if (webpageMode !== null) {
// 触发鼠标移动事件
webpageMode.dispatchEvent(mouseenterEvent);
setTimeout(function() {
var qualityOption = Array.from(document.querySelectorAll('.list-it.svelte-s2ukfj')).find(el => el.textContent.trim() === '原画');
if (qualityOption !== undefined) {
var webpageModeIcon = document.querySelector('#web-player-controller-wrap-el > div > div > div.right-area.svelte-4rgwwa > div:nth-child(2) > div:nth-child(2) > span');
if (webpageModeIcon !== null) {
webpageModeIcon.click();
}
// webpageMode.dispatchEvent(mouseleaveEvent);
}
}, 500); // 等待 500 毫秒
}
player.dispatchEvent(event);
// 立即检查 "quality-wrap" 元素是否出现, 选择 ‘原画’
var qualityWrap = document.querySelector('.quality-wrap.svelte-s2ukfj');
if (qualityWrap !== null) {
// 触发鼠标移动事件
qualityWrap.dispatchEvent(mouseenterEvent);
setTimeout(function() {
var qualityOption = Array.from(document.querySelectorAll('.list-it.svelte-s2ukfj')).find(el => el.textContent.trim() === '原画');
if (qualityOption !== undefined) {
// 触发点击事件
qualityOption.click();
qualityWrap.dispatchEvent(mouseleaveEvent);
}
}, 500); // 等待 500 毫秒
}
}
}, 1000); // 每秒检查一次
})();
按照三楼方法重写了,他的方法很简单,我之前写的太笨了
// ==UserScript==
// @name New script
// @namespace Violentmonkey Scripts
// @match *://live.bilibili.com/*
// @grant none
// @version 1.0
// @description 2024/2/19 14:04:34
// ==/UserScript==
(function () {
'use strict';
// 等待 "live-player" 元素加载完成
var checkPlayerExist = setInterval(function () {
var player = document.getElementById('live-player');
if (player !== null) {
clearInterval(checkPlayerExist);
// 调整画质
var playerP2p = unsafeWindow.$P2PLivePlayer;
playerP2p.switchQuality('10000');
playerP2p.setFullscreenStatus(1);
}
}, 1000); // 每秒检查一次
})();
上面的好像有些问题
// ==UserScript==
// @name bilibili直播更改清晰度网页模式
// @namespace Violentmonkey Scripts
// @match *://live.bilibili.com/*
// @grant none
// @version 1.0
// @description 2024/2/19 14:04:34
// ==/UserScript==
(function () {
'use strict';
// 等待 "live-player" 元素加载完成
var checkPlayerExist = setInterval(function () {
var player = unsafeWindow.livePlayer;
if (player !== null) {
clearInterval(checkPlayerExist);
// 调整画质
setTimeout(()=>{
player.switchQuality('10000');
player.setFullscreenStatus(1);
}, 500);
}
}, 1000); // 每秒检查一次
})();
1
zictos 277 天前
这种东西每个人的需求都不一样的吧?自己需要的脚本别人不一定需要,我最近也写了几个油猴脚本:
1 、让 chatgpt 像搜索引擎一样在地址栏输入关键词直接提问,给 chatgpt 的 url 添加关键词参数,油猴脚本获取参数后等待页面打开后将关键词输入到 chatgpt 的输入框再模拟点击发送。 2 、谷歌搜索结果标题的关键词红色高亮 3 、手机 kiwi 浏览器支持 chrome 扩展和油猴脚本,所以我让它的地址栏可以同时支持多个搜索引擎,引入类似电脑上的搜索引擎快捷词。比如输入关键词后默认会用谷歌搜索,可以用油猴脚本提取谷歌中的关键词,如果关键词是“gpt 测试”,就用重定向到 chatgpt 并提问“测试”,如果关键词是“bd 测试”就重定向到百度搜索"测试"。 4 、禁止手机 kiwi 浏览器上的百度网页写入内容到剪贴板,并将百度链接改为在新标签打开。 |
2
aklllw 277 天前
好用好用感谢
|
3
vvhy 277 天前 2
$P2PLivePlayer.switchQuality('10000')
|
4
shwomen1234fs OP @vvhy 👍,我的方法太笨了
|
5
vvhy 277 天前
|
6
shwomen1234fs OP @vvhy 你这个是怎么找到这个对象的,我是写后端的,只会一些简单的 js ,我通过问 chatgpt 琢磨半天才写出来的😂
|
7
vvhy 277 天前
@shwomen1234fs 打断点,在源码里搜索,全局变量也可以找找
|
8
aklllw 277 天前
原来是能用的,重写版本的反而不起作用了。我的是篡改猴
|
9
shwomen1234fs OP @aklllw 我改一下,确实有你说的问题
|