私はずっとYoutubeに欲しい機能があったのです。
それはライブチャットのデフォルトを「すべてのチャット」にするという機能。
というのもチャット欄はデフォルトで「トップチャット」になっているのですが私は不適切なコメントでさえも見たいタイプなのでいつも「すべてのチャットに」切り替えていました。
設定にありそうなのにどれだけ探しても無い…拡張機能にもない…
しょうがない。。以前から興味はあったので結局拡張機能を自作することにしました。
準備
まずは拡張機能の作り方を調べてみると最低限以下のファイルが必要とのこと。
├── content.js(実際に動かすファイル)
├── manifest.json(設定ファイル)
├── icon.png(拡張機能のアイコン画像)
JSはほぼ初心者ですが実際に手を動かしてみることにします。
テキストエディタはVisual Studio Codeを使いました。
実装
manifest.json(設定ファイル)
拡張機能の設定ファイルです。備忘録として今回設定した各項目についてまとめておきます。
{
"name": "Show All YouTube Chats by Default",
"version": "1.0.0",
"manifest_version": 3,
"description": "YouTubeのデフォルトチャット表示をトップチャットからすべてのチャットに変更します。",
"icons": {
"96": "icon48.png"
},
"content_scripts": [
{
"matches": ["*://www.youtube.com/*"],
"js": ["content.js"]
}
]
}
manifest.jsonの内容
| フィールド名 | 内容 |
|---|---|
| name | 拡張機能の名前。今回は「Show All YouTube Chats by Default」にしました。 |
| version | 拡張機能のバージョン。初回リリースなので「1.0.0」にしています。 |
| manifest_version | 拡張機能の仕様バージョン。最新のV3を使っています。V2のサポートが終わったみたいなのでV3が必須みたいです。 |
| description | 拡張機能の説明。 |
| icons | 拡張機能のアイコン設定。今回は「icon48.png」にしました。 |
| content_scripts | Webページにスクリプトを埋め込む設定。”js” に実行するスクリプト、”matches” に適用するページを指定します。今回はすべてのYouTubeページに適用するようにしています。 |
content.js(実際に動かすファイル)
実際に動かすプログラムです。JSはほぼ知識がないので1週間以上かかってしまいました。
多分無駄な記述や間違いもあると思いますがなんとか動くものができました。
content.jsの内容をざっくり
#chat)をMutationObserverで監視し、変化があるたびに「すべてのチャット」ボタンの候補が生成されているかをチェックします。見つかったら一番最後のボタンをクリックします。見つからない場合は1秒ごとに最大15回まで再チェックします。
ポップアップの設定でON/OFFを切り替え可能です。
変化を検知したら、それまでの監視をいったん止めてから、あらためてボタンを探しにいく処理を実行します。
// チャット欄の変化を監視して、都度ボタンを探しにいく
observeChatContainer(() => {
scheduleButtonClick();
});
function scheduleButtonClick() {
poll(() => {
if (「すべてのチャット」ボタンが見つかった) {
ONなら クリック;
お知らせバナーが有効なら 非表示にする;
return 完了;
}
1秒後にもう一度試す(最大15回);
});
}
// ページ遷移・シアターモードの変化を検知したら
onPageOrTheaterChange(() => {
それまでの監視を止めて再設定;
scheduleButtonClick();
});
実は
iframe の中に要素があったため、通常の document.querySelector では取得できませんでした。contentWindow.document を使うことで iframe 内の要素を取得できます。完成したのでストアに公開
完成した拡張機能はYouTubeライブやアーカイブを開くと以下のように自動ですべてのチャットに切り替わります。
実装後、結局 Chrome ウェブストアにも公開しちゃいました。
公開当初は25人のインストールで驚いていたのですが、2026年9月時点では593人まで増えていました。
評価も5点満点中5.0(5件)をいただいていて、素直に嬉しいです。
Chrome ウェブストアへの公開方法(ざっくり)
Chrome 拡張機能は500円の登録費を払えば誰でもウェブストアに公開できます。
一度登録すれば次からの公開は無料です。公開までの流れはこんな感じ。
その後のアップデート
公開してからも「あったら便利かも」と思った機能を少しずつ追加してきました。
YouTube側の仕様変更で出てきた不具合も、その都度直しています。
| バージョン | 更新内容 |
|---|---|
| v1.1.1(2025年2月) | YouTubeの仕様変更で「トップチャット」に戻ってしまう不具合を修正(全画面・シアターモード時)。軽微なバグ修正 |
| v1.2(2026年2月) | 拡張機能アイコンのポップアップから、自動切り替えのON/OFFを切り替えられるように |
| v1.3 / v1.3.1(2026年9月) | 自動切り替えの不具合を修正(まれに切り替わらない・長時間視聴で重くなる問題など)。「チャットへようこそ」等のお知らせバナーを自動非表示にする機能を追加(個別にON/OFF可)。日本語・英語表示に対応 |
特にv1.2で追加したポップアップのON/OFF切り替えは我ながら便利です。
「配信を録画で見返すときだけ一時的に切りたい」といった場面で役立っています。
まとめ
とにかく途中で投げ出さず最後まで完成させられて良かったです。
ボタン1つクリックさせるだけなのに思った以上に苦戦しました。プログラマーは大変ですね…
今後は、例えば固定コメントや登録者限定メッセージなど、個人的にあまり必要ない機能を非表示にできる設定などを追加できたらいいなぁとふんわり思ってます。
同じ悩みを持っている方の参考になれば嬉しいです!
