スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランスエンジニアとしての実体験から、フリーランスエンジニアに関するノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

【2026年】Twitchで広告で動画が止まる問題を自動復旧 + 動画を古い順・視聴数順に並べ替えてランダム再生もできるChrome拡張を作った

※提携先広告(リンク、バナー等)やAI生成文を含む場合があります
  • Twitchで広告ブロック使用時に動画プレイヤーが固まったら自動でリロードするChrome拡張を自作
  • チャット欄や左サイドバーの苦手なユーザー・キーワードを単語指定で非表示。サイドバーのフォロー外セクションやオフライン時に自動再生されるおすすめ動画もトグルで一括非表示、ビッツ投げ銭のcheerコマンドをワンクリックでコピーするショートカットも内蔵
  • チャンネルのビデオ一覧ページに古い順・視聴数順・動画の長さ順の並び替え + ランダム再生ボタンを追加。Twitch標準では選べない並び順や「とりあえず1本ランダムで観る」導線が使える
  • 権限はstorageとclipboardWriteのみ。完全無料・データ収集なし(2026年5月時点・v1.3.14)

Twitch Adblock Overlay Reloaderのアイキャッチ。Chrome拡張のロゴと『Twitchの広告フリーズを1秒で自動解決』のキャッチコピー、広告ブロック後の動画停止を検知して自動リロードする機能の説明
広告ブロック使用時にTwitchの動画が止まったら自動でリロードするChrome拡張

最近のTwitchは広告挿入のタイミングがどんどん厳しくなっていて、uBlock Origin / Braveのシールド機能 / vaftなどの広告ブロッカーを使っていると、ミッドロール広告が来た瞬間に動画プレイヤーが固まってしまうことがあります。気付いたら配信が止まっていて、リロードして見直してまた止まる、というのは観る側としては地味にストレス。

広告で動画が止まるたびに、自分で手動でリロードするのが面倒すぎます!
チャットの苦手なコメントを毎回ブロックするのも数ステップかかってだるいですね。

そんな観戦勢の不便を、自分用に解消するために作ったChrome拡張機能「Twitch Adblock Overlay Reloader」を公開しました。広告で動画が固まったら自動でページを再読み込み、苦手なユーザーや単語をチャット欄と左サイドバーから即時非表示、チャンネルのビデオ一覧を古い順・視聴数順・動画の長さ順で並び替え + ランダム再生、Twitchへのビッツ投げ銭の cheer100 cheer500 をワンクリックでコピーするショートカット、までを1つの拡張にまとめています。

配信を流しっぱなしで作業することが多い自分には、地味に効いている拡張です。Twitch視聴の「ちょい不便」をまとめて削る感じで作りました。

【2026年】Twitchで広告で動画が止まる問題を自動復旧 + 動画を古い順・視聴数順に並べ替えてランダム再生もできるChrome拡張を作った

広告ブロック使用時にTwitch動画プレイヤーが固まる問題を5秒観測+自動リロードで解決するChrome拡張。チャット/サイドバーのキーワード単位ミュート、動画一覧の並び替え/ランダム再生も内蔵(2026年5月時点・v1.3.14)。

chromewebstore.google.com

なぜこのChrome拡張を自作したのか?

筆者は普段からBraveブラウザの広告ブロック機能やカスタムフィルターを使ってTwitchを視聴している配信観戦勢です。配信を流しながら作業することも多いのですが、ある時期から広告挿入のタイミングで動画プレイヤーが.adblock-overlay系のオーバーレイで固まる事象が頻発するようになりました。

広告ブロックは効いているので広告は流れないのですが、その代わり動画自体がそのまま止まり続けるという形で、結局視聴体験が壊れます。手動でタブを再読み込みすればだいたい復旧するものの、作業中はそもそも気付かず、戻ってきたら数十分止まっていた、というのも珍しくない状態。

気付くと「あ、また止まってる」が日常になっていたので、自動でリロードしてくれる拡張を自分用に作りました。

ただ、自動リロードだけ作って公開しても物足りなかったので、せっかくTwitchのDOMにcontent scriptを挿しているなら、と日頃から不便だった「チャット欄の苦手なユーザーを毎回数ステップでブロックするのがだるい」「サイドバーに並ぶ苦手なチャンネルを非表示にしたい」「ビッツを投げるときに cheer100 をいちいち手で打つのが地味にミスる」あたりも一気にまとめました。

なおTwitch運営とは無関係の個人開発の有志ツールです。Twitch側の仕様変更で動かなくなる可能性もある点はご了承ください。

主な機能

1. 動画が止まったら自動でリロード

uBlock Origin / Braveのシールド機能 / vaft (TwitchAdSolutions)などの広告ブロッカーを使っているときに、広告挿入のタイミングで動画プレイヤーが固まる事象を自動でリカバリします。

具体的には、Twitchの動画プレイヤーに.adblock-overlayまたは.tas-adblock-overlayのオーバーレイが現れたタイミングで、5秒間 <video>currentTime を観測し、1秒以上進んでいなければ「動画が固着している」と判断して1秒後にページをリロードする仕組みです(vaftの「stripping」状態の場合は2秒に短縮)。

普通に視聴できているとき(広告ブロックは効いているが動画が再生継続している場合)はリロードしないので、余計なページ再読み込みは発生しません。

リロード後もoverlayが2〜3分残ることがあるため、4分のクールダウンを入れて再検知ループを防止しています。連続リロードでサイトに迷惑をかけないための保険です。

2. チャット欄のミュート

ツールバーの拡張アイコンをクリックするとポップアップが開きます。「チャットミュート」欄に苦手な単語またはユーザー名を入力して「追加」を押すだけで、その文字列を含むチャット行が即座に非表示になります。

Twitch Adblock Overlay Reloaderの拡張ポップアップ画面。ツールバーの拡張アイコンをクリックで表示され、チャットミュートのキーワード/ユーザー名追加フォームが見える
ツールバーの拡張アイコンをクリックでポップアップが開く。キーワードまたはユーザー名を追加するとチャット欄から該当行が即座に非表示になる

マッチ対象はユーザー名・表示名・発言本文・絵文字(emote)名の4つ。Twitchのチャットでよく使われるemoteは画像として描画されるためtextContentでは拾えないのですが、本拡張はimg要素のalt属性を集約してマッチ対象に含めているので、特定のemote連投を非表示にする使い方もできます。

実際の効果は「登録した単語を含む行が即座に消える」シンプルなもの。例として「ガチコーチ」というワードをミュート登録した場合、登録前と登録後でチャット欄の見え方は次のように変わります。

チャットミュート登録前のTwitchチャット欄。例として「ガチコーチ」を含むコメントがそのまま流れている状態
ミュート登録前のチャット欄。「ガチコーチ」を含む行がそのまま流れている

チャットミュートに「ガチコーチ」を登録した後のTwitchチャット欄。該当ワードを含む行が非表示になっている状態
ミュート登録後のチャット欄。「ガチコーチ」を含む行が即座に消える

ライブ配信のチャットだけでなく、過去配信(VOD)・クリップのチャットでも同じミュートが効きます。複数のTwitchタブを同時に開いていても、登録・削除はその場で全タブに即時反映されます。

3. 左サイドバーをスッキリさせる

左サイドバーから気が散る要素をまとめて隠せます。ポップアップの「サイドバーのチャンネルミュート」欄に、用途別の2通りを用意しています。

フォロー中以外のセクションを一括非表示(v1.2.2で追加)

ポップアップ上部のトグルをONにすると、左サイドバーの「ライブ配信中のチャンネル(おすすめ)」「○○さんの視聴者が視聴」など、フォローしていないチャンネルが並ぶセクションをまるごと非表示にします。サイドバーには自分がフォロー中のチャンネルだけが残るので、知らない配信者に目移りせず視聴に集中できます。

Twitchの左サイドバー。上段の『フォローしているチャンネル』はそのまま残り、下に並んでいた『あなたへのおすすめ』などフォロー外のセクションが消えて空白になっている。赤枠と矢印で非表示になった領域を強調
ポップアップで『フォロー中以外のセクションを非表示』トグルをONにした状態。左サイドバー下半分のおすすめ枠が消え、フォロー中のチャンネルだけが残る(v1.2.2で追加)

チャンネル名で個別に非表示

特定のチャンネル名の一部を登録すると、そのチャンネルだけサイドバーから隠せます。マッチ対象は表示名・ログイン名のどちらにも部分一致。新しく配信を始めた配信者がサイドバーに加わった場合も、登録した単語に当てはまっていれば自動で非表示になります。

4. オフライン時のおすすめチャンネル動画を非表示(v1.2.2で追加)

フォロー中の配信者のチャンネルページを開いたとき、その配信者がオフラインだとTwitchが「○○さんがオフラインの間、こちらを見てみましょう」と別の知らない配信者の動画を画面いっぱいに自動再生します。音声まで流れるので、集中したいときに気が散ったり、突然知らない言語の声が出てきて驚くことがあります。

ポップアップの「オフライン時のおすすめチャンネル動画を非表示」トグルをONにすると、このおすすめ動画カルーセル全体が非表示になり、動画も停止 + ミュートされます。ログイン中で本人がオフラインのときの「本人VOD紹介」はそのまま残るので、過去配信を観たいときの邪魔にはなりません。

5. Twitchで動画を古い順・視聴数順・動画の長さ順に並べ替え + ランダム再生(v1.3.14で追加)

チャンネルのビデオ一覧ページ(/<channel>/videos)はTwitch標準だと「日付順」「人気順」のどちらも降順固定で、古い動画から順に観たい・視聴数の少ない動画を発掘したい・短い告知ショートや長尺配信だけ絞り込みたい、ができません。また、そのチャンネルの全動画から「とりあえず1本ランダムで観たい」という導線もありません。本機能はその不足分を補うものです。

ポップアップの「ビデオ一覧の並び替え」セクションでトグルをONにし、並び順を選択するだけで使えます。並び順は以下の6モード:

  • 日付(新しい順 / 古い順)
  • 視聴数(多い順 / 少ない順)
  • 動画の長さ(長い順 / 短い順)

Twitchのチャンネルビデオ一覧ページで、本拡張が追加したバナー右側の並び順プルダウンを開いた状態。デフォルト (Twitch標準)・日付 (新しい順)・日付 (古い順)・視聴数 (多い順)・視聴数 (少ない順)・動画の長さ (長い順)・動画の長さ (短い順) の選択肢と、右側にランダム再生・更新ボタンが表示されている
ビデオ一覧の並び順プルダウン。日付・視聴数・動画の長さの3軸を昇降で組み合わせた6モードに対応(v1.3.14で追加)

並び替えが有効な状態でチャンネルのビデオ一覧ページを開くと、すべて / ダイジェスト / 過去配信 / アップロード の全フィルタに対応して全件を自動取得し、指定の順序で並べ替えます。一覧の上には「件数・キャッシュ作成日時・並び順セレクタ・ランダム再生ボタン・更新ボタン」が並ぶバナーが出るので、ポップアップを開き直さなくてもその場で並び順を切り替えられます

ビデオ一覧の上部に出る紫色のバナー。左に「1646件、キャッシュ: 2026/05/11 18:27」、右に並び順セレクタ、ランダム再生ボタン、更新ボタンが並んでいる
ビデオ一覧の上に出るバナー。件数・キャッシュ作成日時・並び順・ランダム再生・更新が1か所にまとまっている

「ランダム再生」ボタンを押すと、並び替え対象の中から1本ランダムに選んで新しいタブで開きます。観終わった次の動画を機械的に選びたい場面、過去の配信を発掘したい場面で便利です。個別のビデオ再生ページ(/videos/<id>)を開いたときも、そのチャンネルのキャッシュがあれば動画タイトル付近にコンパクトな「ランダム再生」ボタン入りのバナーが出るので、観終わったあとそのまま次の動画にランダムでハシゴできる導線として使えます。

取得結果はチャンネル + フィルタ単位でブラウザ内にキャッシュされるため、2回目以降のページ訪問では待ち時間ゼロで並び替え結果が表示されます。視聴数を最新化したいときはバナーの「更新」ボタンを押すと再取得できます。初回は全件取得するため動画数によっては数十秒〜数分かかる点だけ気に留めてください。

6. ビッツ投げ銭のcheerショートカット(v1.2.1で追加)

ポップアップの「チアーショートカット」欄に、よく使うビッツ数(例: 100 500 1000)をプリセット登録すると、Twitchのチャット入力欄の上に cheer100 cheer500 のような専用ボタンが並びます

Twitchのチャット入力欄の上に並ぶcheerショートカットボタン群。cheer100/cheer300/cheer500/cheer700/cheer1000のプリセットボタンと、cheer300のツールチップで「コピー → 入力欄で Cmd/Ctrl+V」が表示されている
チャット入力欄上に並ぶcheerプリセットボタン。クリックで対応するcheerコマンドがクリップボードにコピーされる

ボタンを押すとcheer100 (末尾スペース付き)がクリップボードにコピーされ、チャット入力欄に自動でフォーカスが移るので、あとはCmd/Ctrl+Vで貼り付けてEnterを押すだけ。

cheerショートカットボタン(cheer300)を押した直後の表示。ボタンが緑にハイライトされ「コピー済!Cmd/Ctrl+V」のラベルに変化、入力欄にフォーカスが移っている
ボタンを押すとクリップボードコピー完了。あとは入力欄でCmd/Ctrl+V → Enterで送信

送信自体は自動化していないので、タイミングを間違えて違う配信者に投げる、といった誤爆の心配はありません。「あれ、今いくら投げるんだっけ」と毎回入力しなおす手間を消したい応援勢向けの機能です。

動画の自動復旧はどうやって判定している?

Twitchプレイヤーに .adblock-overlay または .tas-adblock-overlay のオーバーレイが現れた瞬間から5秒間 <video>currentTime を観測し、1秒以上進んでいなければ「動画固着」と判断して1秒後にリロード、4分間は再検知をスキップ、という多段ガード構成になっています。

ステップ 内容
1. 検知 overlayのDOM出現や表示変化を MutationObserver で監視
2. 観測 <video>currentTime 開始値を記録、5秒間(stripping表示時は2秒)待つ
3. 判定 進行差が1.0秒以上 → 視聴できているのでスキップ。1秒未満 → 固着扱い
4. クールダウン 直近4分以内にリロード済みならスキップ(無限ループ防止)
5. リロード 1秒後に location.reload()

視聴できているとき(広告ブロックが効いていて動画も止まらない理想ケース)には絶対にリロードしないように、進行観測のステップを必ず挟むのがポイントです。

overlayが表示されたら即リロード、にすると、視聴できているのに勝手にリロードする迷惑拡張になります。観測ウィンドウを挟んで「本当に止まっているか」を確認してから動かしています。

他の広告ブロッカーと一緒に使える?

はい、むしろ併用前提です。本拡張は広告ブロック自体は行わず、既存の広告ブロッカーが「広告は止めたが動画も止まってしまった」状態を後から救う後処理レイヤーとして動きます。Braveのシールド + カスタムフィルター環境、uBlock OriginのTwitch用フィルター、vaft (TwitchAdSolutions)のいずれと組み合わせても干渉しません。

実際、検知対象セレクタはvaftが付与する .adblock-overlay とuBlock Originカスタムフィルター系が付与する .tas-adblock-overlay両方を見るように作っているので、どちらの広告ブロッカーを使っていても自動復旧が効きます。

Braveで広告ブロックフィルターが消えていて困っている人は、先にこちらの記事でフィルター追加を済ませておくと相性がいいです。

www.malanka.org

Twitch公式のチャットブロックと何が違う?

Twitch公式のユーザーブロックは「ユーザー名クリック → メニュー開く → ブロック → 確認」と毎回数ステップを踏みますが、本拡張は拡張アイコンクリック → 単語入力 → 追加ボタンの最短2クリックで全タブ即時反映、ライブだけでなくVOD・クリップでも、絵文字(emote)名にもマッチ、という違いがあります。

項目 Twitch公式ブロック 本拡張のチャットミュート
操作ステップ ユーザー名クリック → メニュー → ブロック → 確認 アイコン → 単語入力 → 追加
マッチ対象 特定ユーザー1人ずつ 単語・ユーザー名・表示名・発言本文・絵文字名
適用範囲 アカウント単位 開いているTwitchタブ全部に即時
VOD・クリップ
解除 設定画面から ポップアップで一覧から削除

ユーザー単位ではなく「特定の単語を含む発言」「特定のemote連投」をまとめて消したい用途では、本拡張のほうが小回りがききます。

こんな場面で便利!活用シーン

配信を流しながら作業する場面、推し配信者をビッツで応援する場面、苦手な定型コメントや特定emote連投をまとめて消したい場面で効きます。「Twitch視聴の細かい不便を1つの拡張でまとめて削る」のがコンセプトです。

配信を流しっぱなしで作業する場合: 広告で止まっても自動復旧するので、戻ってきたら数十分止まっていた、を回避できます。視聴できているときは何もしないので、余計なリロードは発生しないのが地味に効きます。

苦手な定型コメントや特定emote連投の対策に: 特定単語やemote名を登録すれば、その後流れてくるチャットも自動で判定されて非表示になり続けます。配信ごとに毎回ブロック作業をしなくていいので楽です。

推し配信者をビッツで応援する場面に: よく使うビッツ数(100 / 500 / 1000)をプリセット登録しておけば、チャット入力欄上の cheerXXX ボタンを押す → Cmd/Ctrl+V → Enterで送信完了。応援タイミングを逃さず、それでいて誤爆もしにくいのが個人的にありがたい設計です。

www.malanka.org

使い方:インストールから設定まで

Chromeウェブストアから拡張機能をインストールし、Twitchを開けば自動リロード機能はすぐ動きます。チャットミュートやビッツ投げ銭ショートカットを使いたい場合のみ、ツールバーの拡張アイコンをクリックしてポップアップから登録してください。

  1. Chromeウェブストアで拡張機能をインストール – Twitch Adblock Overlay Reloaderのストアページから追加します(リンク)
  2. Twitchの好きな配信を開く – https://www.twitch.tv/* の任意のページ。動画固着の自動復旧はインストール直後から有効です
  3. チャットミュートを使う – ツールバーの拡張アイコンをクリック → 「チャットミュート」欄に単語またはユーザー名を入力 → 「追加」
  4. 左サイドバーをスッキリさせる – 同じポップアップで「フォロー中以外のセクションを非表示」トグルをONにする、または「サイドバーのチャンネルミュート」欄にチャンネル名を登録
  5. オフライン時のおすすめチャンネル動画を消す – ポップアップの「オフライン時のおすすめチャンネル動画を非表示」トグルをON
  6. ビデオ一覧を並び替えて見る – ポップアップの「ビデオ一覧の並び替え」セクションでトグルをON → 並び順を選択 → そのチャンネルの /<channel>/videos ページを開くと自動で並び替わる。バナーの「ランダム再生」ボタンで1本ランダムに開ける
  7. ビッツ投げ銭ショートカットを使う – ポップアップの「チアーショートカット」欄に使いたいビッツ数(例: 100, 500, 1000)を登録 → チャット入力欄上のボタンを押す → Cmd/Ctrl+V → Enter

動作対象URL・対応ブラウザ

動作するのは https://www.twitch.tv/* のみ、対応ブラウザはManifest V3対応のChromium系(Google Chrome / Microsoft Edge / Brave / Arcなど)です。それ以外のサイト・ブラウザでは一切作用しません。

項目 内容
対象URL https://www.twitch.tv/*
対応ブラウザ Chrome / Edge / Brave / Arc等のChromium系(Manifest V3対応)
必要な権限 storage / clipboardWrite の2つのみ(ホスト権限なし)
外部通信 なし(インターネット上のサーバーへ何も送信しない)

権限が「2つだけ」なのは、設定をChromeローカルに保存する storage と、cheerコマンドをクリップボードへコピーする clipboardWrite 以外には必要がないからです。ユーザーの行動を追跡する機能や、広告を表示する機能は一切搭載していません

バージョン履歴と今後について

本記事執筆時点の最新はv1.3.14。v1.2.1でビッツ投げ銭のcheerショートカット、v1.2.2で左サイドバーのフォロー中以外のセクション一括非表示とオフライン時のおすすめチャンネル動画非表示、v1.3.14でチャンネルのビデオ一覧を古い順・視聴数順・動画の長さ順で並び替えてランダム再生もできる機能を追加しました。今後もTwitch視聴中に「ちょっとした手間」を感じたタイミングで機能を足していく予定です。

要望や不具合報告は、Chromeウェブストアの掲載ページのサポートメール宛にお寄せください。

関連記事

筆者が過去に作った別のChrome拡張記事や、Twitch視聴環境まわりの記事です。

www.malanka.org

www.malanka.org

www.malanka.org

www.malanka.org

おわりに

広告で動画が固まってもただ自動でリロードする、苦手な単語を消す、cheerコマンドをコピーする、それだけのシンプルな拡張ですが、「Twitch視聴の細かい不便」を1つの拡張でまとめて削れるのが個人的に楽な設計です。配信を流しながら作業する観戦勢には地味に効くかもしれません。

同じく観戦勢の方がいたら、ぜひ試してみてください。

chromewebstore.google.com

よくある質問

Q. 無料で利用できますか?

  1. はい、完全に無料です。インストール料金もサブスクリプションも、課金要素もありません。

Q. 個人情報やチャット内容を外部に送信していませんか?

  1. インターネット上のサーバーには何も送信していません。ミュート単語・ビッツ数プリセットはchrome.storage.localにのみ保存され、Chromeの同期設定にも乗せていません。

Q. リモートコードや外部スクリプト読み込みは使っていますか?

  1. いいえ、使っていません。拡張内のJSファイル(content.js / popup.js)のみを実行し、外部URLからのスクリプト読み込みやevalなどの動的コード評価は一切行っていません(2026年5月時点・v1.3.14)。

Q. 広告ブロックを使っていなくても役に立ちますか?

  1. 自動リロード機能は広告ブロック使用時の動画固着を救う設計ですが、チャット欄ミュート・サイドバーのチャンネルミュート(個別 / フォロー外セクション一括)・オフライン時のおすすめチャンネル動画非表示・ビデオ一覧の並び替えとランダム再生・ビッツ投げ銭ショートカットは広告ブロックの有無に関係なく使えます。

Q. ビッツ投げ銭ショートカットは送信まで自動化されますか?

  1. されません。クリップボードにcheer100の文字列(末尾にスペース1個付き)がコピーされ、入力欄にフォーカスが移るところまでが自動で、貼り付けと送信はあなた自身がCmd/Ctrl+V → Enterで行う設計です。誤った相手・タイミングに送る誤爆を防ぐためです。

Q. Twitchで動画を古い順に並べ替えるには?

  1. Twitch標準のUIではチャンネルのビデオ一覧(/<channel>/videos)は「日付↓(新しい順)」「人気↓」 のどちらも降順固定で、古い順は選べません。本拡張をインストールしてポップアップの「ビデオ一覧の並び替え」 をON → 並び順で「日付(古い順)」 を選ぶと、そのチャンネルの全動画を古い順に並べ替えて表示できます(v1.3.14で追加)。

Q. Twitchで視聴数の少ない順や動画の長さで並べ替えることはできますか?

  1. Twitch標準ではできませんが、本拡張で対応できます。並び順は「視聴数(多い順 / 少ない順)」 と「動画の長さ(長い順 / 短い順)」 を含む6モードに対応しているので、埋もれている再生数の少ない過去配信を発掘したい場合や、短い告知ショート / 長尺アーカイブだけ拾いたい場合に使えます。

Q. Twitchのチャンネル動画をランダム再生できますか?

  1. はい、本拡張のビデオ一覧並び替え機能を有効にすると、一覧ページ上部のバナーに「ランダム再生」 ボタンが出ます。ボタンを押すと並び替え対象から1本ランダムに選んで新しいタブで開きます。個別ビデオ再生ページ(/videos/<id>)にもコンパクト版バナーが出るので、観終わった次の動画にそのままランダムでハシゴできます。

Q. 機能が動かない場合はどうすればいい?

  1. まずChrome拡張が有効になっていることを確認し、Twitchのページを再読み込みしてください。それでも改善しない場合は、Chromeウェブストアの掲載ページのサポートメール宛にご連絡ください。

※本記事は2026年5月時点・v1.3.14の機能をもとに解説しています。最新の仕様はChromeウェブストアの掲載ページをご確認ください。