YouTube などの動画の音量を上げるブックマークレット

YouTube などの動画サイトで、PC 設定やスピーカーの音量を上げてもまだ音量が小さい動画に遭遇することがある。

そんな時に、以下のブックマークレットを使うと最大音量を上げられる。

javascript:((v,a,l,s,g)=>{s=a.createMediaElementSource(v);g=a.createGain();g.gain.value=l;s.connect(g);g.connect(a.destination)})(document.querySelector('video'),new AudioContext(),3);

どのくらい音量を上げるかは、仮引数 l の値、コード末尾にある 3 の値を増減することで調整できる。1 が元の 100% の音量だ。

コードを分かりやすく展開すると、次のようなコードになっている。

javascript:(() => {
  const videoElement = document.querySelector('video'),
        audioContext = new AudioContext(),
        source       = audioContext.createMediaElementSource(videoElement),
        gainNode     = audioContext.createGain();
  gainNode.gain.value = 3;  // この値を大きくすると音量を上げられる
  source.connect(gainNode);
  gainNode.connect(audioContext.destination);
})();

document.querySelector('video') でテキトーにページ中の video 要素を掴まえている。サイトによってはココで確保する video 要素がキモになるかもしれないが、ひとまず YouTube ではコレで良い。

以降、Web Audio API を利用して gain.value を上げることで音量を引き上げている。

このブックマークレットは、以下の Chrome 拡張機能のソースコードをヒントに作成した。Chrome 拡張機能が入れられるなら以下の拡張機能を使った方が、動的に音量を調整できるのでオススメ。

今回は Web Audio API のお遊びとして。