Chrome系ブラウザでYouTube Shortsへの導線と表示を取り除く、Manifest V3形式の拡張機能です。
- Shortsのリンクを開くと
https://www.youtube.com/へ移動します。 /shorts/...を直接入力した場合もYouTubeトップへ戻します。- YouTubeのホーム、検索結果、サイドバー、動画再生中の関連欄からShorts棚とShortsカードを隠します。
- 拡張機能のポップアップから、全体・遷移防止・表示除去を個別に切り替えられます。
- 閲覧内容や設定を外部サーバーへ送信しません。設定はChromeの同期ストレージだけに保存します。
YouTubeは画面遷移と再描画をページ全体のリロードなしで行うため、次の3層で防ぎます。
src/background.jsがブラウザのナビゲーションを監視し、直接アクセスとHistory APIによる/shorts/...遷移をトップへ戻します。src/content.jsがクリック、Enterキー、YouTube固有の画面遷移イベント、DOM更新を監視します。ページ側のルーティングが先に動く場合にも備えたガードです。src/rules.jsに集約したセレクタで、Shorts専用棚、Shortsの個別カード、展開・折りたたみサイドバーを非表示にします。汎用の棚・カードはShortsリンクを含み、かつ通常の/watchリンクを含まない場合だけ非表示にします。通常の関連動画を含む親セクションは対象にせず、表示言語にも依存しません。
URL判定とDOMセレクタを src/rules.js に集約しているため、YouTube側のDOM変更があった場合もこのファイルを中心に更新できます。
- Chrome系ブラウザで拡張機能管理画面(Chromeの場合は
chrome://extensions)を開きます。 - 「デベロッパー モード」を有効にします。
- 「パッケージ化されていない拡張機能を読み込む」を選びます。
- このディレクトリ
/Users/kent/Projects/short_blockerを指定します。
コードを変更した場合は、拡張機能管理画面の再読み込みボタンを押し、開いているYouTubeタブも再読み込みしてください。
外部依存はありません。Node.js 20以上で実行できます。
npm testテストでは、Shorts URL判定、設定による有効・無効、主要画面のセレクタ、Manifestのエントリポイントを確認します。
- YouTubeホームのサイドバーに「ショート」が表示されない。
- ホームまたは検索結果にShorts棚・Shortsカードが表示されない。
- 通常動画の再生中、関連動画欄にShorts棚が表示されない。
https://www.youtube.com/shorts/<動画ID>を開くとYouTubeトップへ移動する。- リンクを新しいタブで開いた場合も、そのタブがYouTubeトップへ移動する。
- ポップアップで全体を停止すると、Shortsの表示とアクセスが元に戻る。
CSSの :has() とManifest V3に対応したChrome 105以降を対象にしています。Edge、Brave、Vivaldiなど、同等のChromium拡張APIを持つブラウザでも利用できる構成です。
YouTubeのDOM要素名は将来変更される可能性があります。Shortsが再表示された場合は、開発者ツールで /shorts/ へのリンクを含む最小のカードまたは棚要素を確認し、SHORTS_SURFACE_SELECTORS に追加してください。URLリダイレクトはDOM要素名に依存しません。