放大任意网站视频音量(支持多倍增益)
// ==UserScript==
// @name Video Volume Booster (通用音量放大器)
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 放大任意网站视频音量(支持多倍增益)
// @author Kazzz
// @match *://*/*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
'use strict';
// === 可调参数 ===
const GAIN_VALUE = 4.0; // 默认放大倍数(1.0 = 原音量,2.0 = 200%,可根据需求调整)
const CHECK_INTERVAL = 2000; // 检测视频间隔(毫秒)
const boostedVideos = new WeakSet();
function boostVolume(video) {
if (boostedVideos.has(video)) return;
try {
const ctx = new AudioContext();
const source = ctx.createMediaElementSource(video);
const gainNode = ctx.createGain();
gainNode.gain.value = GAIN_VALUE;
source.connect(gainNode).connect(ctx.destination);
boostedVideos.add(video);
console.log(`[VolumeBooster] 已为视频启用音量放大:x${GAIN_VALUE}`);
} catch (err) {
console.warn('[VolumeBooster] 无法增强音量:', err);
}
}
function scanVideos() {
document.querySelectorAll('video').forEach(boostVolume);
}
setInterval(scanVideos, CHECK_INTERVAL);
scanVideos();
// 可选:按下键盘快捷键 “Shift + ↑/↓” 调整音量倍数
window.addEventListener('keydown', e => {
if (!e.shiftKey) return;
if (e.key === 'ArrowUp') {
window.GAIN_VALUE = Math.min((window.GAIN_VALUE || GAIN_VALUE) + 0.2, 5);
console.log(`🔊 当前音量放大倍数: x${window.GAIN_VALUE.toFixed(1)}`);
} else if (e.key === 'ArrowDown') {
window.GAIN_VALUE = Math.max((window.GAIN_VALUE || GAIN_VALUE) - 0.2, 1);
console.log(`🔉 当前音量放大倍数: x${window.GAIN_VALUE.toFixed(1)}`);
}
});
})();