BetterPlayback — YouTube再生速度を拡張する拡張機能

Tool

概要

(リポジトリの概要を300字程度で説明)

BetterPlayback は YouTube の再生体験を “より自由に” するための個人用 Chrome 拡張です。YouTube がデフォルトで設けている再生速度の上限(通常 2x)を撤廃し、任意の速度に設定できるようにします。速度の増減はキーボードショートカット(Ctrl + > / Ctrl + <)で行え、変更はページのリロードや別タブ・別動画にまたがって保持・同期されます。プレーヤー内に小さな速度表示ポップアップを出すことで視認性も確保。RATE_STEP(既定 0.25)や MIN_RATE(既定 0.1)を content.js で調整できるため、個人の好みに合わせて簡単にカスタマイズ可能です。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 5
  • ファイル数: 4
  • メインの言語: JavaScript

主な特徴

  • YouTube の 2x 上限を解除し、より高速(または低速)な再生を可能にする。
  • Ctrl + > / Ctrl + < によるキーボード操作で速度を増減。
  • 設定はリロードや新しい動画、複数タブ間で保持・同期される。
  • 再生中に小さな速度ポップアップを表示して現在値を視認可能。RATE_STEP / MIN_RATE は簡単に変更可能。

技術的なポイント

(技術的な特徴や注目点を700字程度で説明)

BetterPlayback はシンプルなコンテンツスクリプトベースの拡張で、YouTube のメディア要素(HTMLMediaElement / YouTube プレーヤー API など)に対して再生速度を直接操作するアプローチを採っています。README から読み取れる実装上の特徴は次のとおりです。

  • 再生速度操作: content.js 内で RATE_STEP(既定 0.25)や MIN_RATE(既定 0.1)といった定数が定義され、キーボード入力に応じて現在の playbackRate を増減する処理が行われていることが示唆されます。これは document に対する keydown リスナーを設置し、対象の video/audio 要素の playbackRate を変更する典型的な実装です。
  • 永続化と同期: README に「Speed changes persist across reloads, sync across tabs」とあるため、速度値はブラウザ側のストレージ(chrome.storage.local / chrome.storage.sync、または localStorage と BroadcastChannel の組み合わせ)に保存され、タブ間同期の仕組みで共有されているはずです。chrome.storage.sync を使えば Google アカウント間の同期も可能ですが、実装によってはローカルのみの同期かもしれません。
  • UI フィードバック: 再生速度を変更した際にプレーヤー内へ小さなポップアップを表示すると README にあるため、content.js は DOM にオーバーレイ要素を挿入してスタイルを当て、一定時間表示後にフェードアウトする制御を行っています。これはプレーヤーのレイアウトに依存するため、YouTube の DOM 変化(SPA ナビゲーション)へも耐えうるリスナーや MutationObserver を用いて挿入タイミングを管理している可能性があります。
  • SPA(Single Page Application)対応: YouTube はページ遷移を伴わない動画切替を行うため、新しい動画でも設定を維持するためには URL 変化や History API の変化を監視し、動画要素の再取得や再バインドを行う必要があります。README が「keeps your speed locked across tabs + new videos」と記載していることから、動画ロードイベントや DOM 変化を補足して playbackRate を再適用する処理が入っていると推測できます。
  • カスタマイズのしやすさ: RATE_STEP や MIN_RATE を content.js に直接書き換える形で調整できる旨が明示されており、設定 UI を持たない代わりにソース編集でのカスタマイズを想定した実装です。小規模で依存が少ない分、メンテナンスも容易です。

注意点としては、YouTube 側の仕様変更(プレーヤー構造やクラス名の変更、iframe の切り出しなど)により DOM 選択やオーバーレイ挿入が壊れる可能性があること、また高い再生速度では音声品質やブラウザの処理負荷が問題となる場合がある点です。実装は比較的単純な設計のため検証・修正も行いやすく、個人的な利用や学習用途に適しています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENCE.txt: file
  • README.md: file
  • content.js: file
  • manifest.json: file

content.js が拡張の主ロジックを担い、manifest.json により content script と権限が宣言されている構成です。アンパック形式でのインストール手順も README に記載されています。

まとめ

(総評を50字程度で)

シンプルで実用的な YouTube 再生速度拡張。軽量かつカスタマイズ容易、個人利用に最適。

リポジトリ情報:

READMEの抜粋:

BetterPlayback

Removes YouTube’s 2x cap and keeps your speed locked across tabs + new videos.

Install (unpacked)

  • Open chrome://extensions
  • Enable Developer mode
  • Load unpacked and pick this folder

Controls

Ctrl + > = faster Ctrl + < = slower

Speed changes persist across reloads, sync across tabs, and show a small speed popup inside the player.

Tweaks Edit content.js if you want to change RATE_STEP (default 0.25) or MIN_RATE (default 0.1). …