ERENOA
← Works に戻る 公開リポジトリ

yt-volume-precise — YouTubeの音量を数値で調整するChrome拡張

YouTubeの音量を数値入力・プリセットで調整するChrome拡張。

YouTubeだけに権限を絞り、外部通信を持たない設計。

操作部品を共通化し、権限や通信の条件を機械検査。

数値入力とプリセットで音量を調整する操作画面
数値入力とプリセットで音量を調整する操作画面
Chrome ExtensionManifest V3JavaScriptWeb Audio最小権限

紹介

YouTubeの音量を数値入力とプリセットで調整するChrome拡張、yt-volume-precise。YouTubeに限定した権限、外部通信を持たない設計、機械検査を紹介します。

Case study / 08

誰のどんな課題か

YouTubeの音量スライダーでは細かい調整が難しく、前と同じ音量に戻しにくい。そうした操作を数値入力とプリセットで行うための拡張です。音量操作に必要な範囲へ権限を絞ることを、設計の主眼にしています。

誰のどんな課題か
  1. 数値入力
  2. プリセット
  3. 最小権限

やったこと・設計の判断

数値とプリセットで音量を指定する

音量の直接入力と、よく使う音量のプリセットを用意。プレイヤー内の小パネルとポップアップで同じ部品を使っています。100を超えるブーストは既定でOFFとし、利用者が明示的にONにした場合だけWeb Audioを挿入します。

権限と依存を限定し、検査できる形にする

permissionsはstorageのみ、host_permissionsはwww.youtube.comとmusic.youtube.comのみ。外部通信のコードを持たず、npm依存とビルド工程もありません。設定はchrome.storage.localだけに保存し、データは収集しません。

これらの条件をverify.shで検査します。検査器自身には、意図的に壊した検体を検出できるか確かめる回帰テストを用意しています。

Chrome・Edge向けで、Firefoxは未対応です。

やったこと・設計の判断
  1. storage
  2. YouTube
  3. verify.sh

技術

  • Chrome拡張 Manifest V3
  • JavaScript(classic script)・CSS・HTML
  • Web Audio:ブーストを有効にした場合のみ使用
  • bash・Node.js:node --testと、Node上の偽DOM・偽chromeによる検査
技術
  1. JavaScript
  2. Web Audio
  3. node --test

規模・数字

  • verify.sh:13項目合格、失敗0件。
  • 検査器自身の回帰テスト:162件合格、失敗0件。
  • 拡張本体のJavaScript:5ファイル、計2,066行。
  • 既定プリセット:15・30・50・70・100の5個。ブースト上限は300。

公開リンク

Chromeウェブストアには未提出です。公開リポジトリをcloneし、「パッケージ化されていない拡張機能」として読み込む方法で入手できます。