Youtubeの画質を固定するChrome拡張機能『オートクオリティ4K/HD』

関連記事

常に同じ画質でYoutubeの動画を見られるオートクオリティ4K/HD

タイトルですでに説明が終わってしまっているほどシンプルなChrome拡張機能ですが、名前の通り4K固定にすることも、480pや144pと言った低画質品質に固定することも可能です。

オートクオリティ4K/HD

使い方は拡張機能をインストール後Youtubeにアクセスするとツールバーボタンが表示されるので、ボタンから画質を選択するだけ。

常に4K画質で動画を見たい人にはもちろんおすすめですが、Wi-Fiなどの通信制限があるインターネット環境でYoutubeを垂れ流しておきたい場合など、低画質に固定したい状況もあるのではないかと思います。

動画の再生速度を変更できるVideo Speed Controllerなどと併用すると時間と帯域を有効活用できるでしょう。

Video Quality Fixer for YouTube

Video Quality Fixer for YouTube

オートクオリティ4K/HDが効かないことが増えてきたので、最近はこちらの拡張機能を使っていますが、どうもこちらも動作しないことが多いですね。

使い方は同じくボタンから選択するだけ。

Tampermonkeyスクリプト Youtube Video Quality

Youtube Video Quality 01

https://greasyfork.org/en/scripts/374466-youtube-video-quality

ボタンを使ったリアルタイムでの画質変更はできませんが、常に同じ画質に固定したい場合はこのTampermonkeyスクリプトが一番確実です。

画質が変更されるまで無限ループするシンプルかつ間違いのない作りで、必ず目当ての画質にしてくれます。

Youtube Video Quality 02

初期設定では固定される画質は480p。

他の画質に設定したい場合はスクリプトの20行目を以下のように編集してください。

document.getElementById(“movie_player”).setPlaybackQualityRange(‘hd1080’);

上記は一例ですが、1080pに固定されます。

通常の拡張機能より少し敷居は高めですが、Tampermonkeyは単体で多くの機能を賄える拡張機能なので少し知識がある人にはおすすめです。

Youtube Video Qualityを改良

自分で画質を変更した場合でも強制的に元の画質に戻るのは不便なので、Youtubeの設定アイコン(歯車アイコン)をクリックしたら画質の変更をストップするようにしました。

// ==UserScript==
// @name        Youtube Video Quality
// @version     1.0.1
// @grant       none
// @match       https://www.youtube.com/*
// @run-at      document-start
// @author      Gamsteron
// @description Disabling auto video quality
// @no-frames
// @namespace https://greasyfork.org/en/users/226529
// ==/UserScript==
(function() {
  'use strict';

  const QUALITIES =  ['auto', 'highres', 'hd2880', 'hd2160', 'hd1440', 'hd1080', 'hd720', 'large', 'medium', 'small', 'tiny'];
  const QUALITY_MEDIUM = QUALITIES[8];
  const QUALITY_LARGE = QUALITIES[7];

  let changeManualQuality = false;

  let SetQuality = () => {
    if (changeManualQuality) {
      return false;
    }
      console.log('quality changed.');
      document.getElementById('movie_player').setPlaybackQualityRange(QUALITY_MEDIUM);
  }
  setTimeout(SetQuality, 2000);
  setInterval(SetQuality, 2000);

  setTimeout(() => {
    console.log('Click `settings\' has stop auto change quality.');
    document.getElementsByClassName('ytp-settings-button')[0].addEventListener('click', () => {
      console.log('Stop auto change quality.');
      changeManualQuality = true;
    });
  }, 2000);
})();

どうもYoutubeは画面読み込み後に色々要素を足しているのか、DOMContentLoadedやloadに引っ掛けてもイベントの追加ができないことが多いのでsetTimeoutに。

関連記事

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL