Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YouTube Shorts Blocker

Chrome系ブラウザでYouTube Shortsへの導線と表示を取り除く、Manifest V3形式の拡張機能です。

動作

  • Shortsのリンクを開くと https://www.youtube.com/ へ移動します。
  • /shorts/... を直接入力した場合もYouTubeトップへ戻します。
  • YouTubeのホーム、検索結果、サイドバー、動画再生中の関連欄からShorts棚とShortsカードを隠します。
  • 拡張機能のポップアップから、全体・遷移防止・表示除去を個別に切り替えられます。
  • 閲覧内容や設定を外部サーバーへ送信しません。設定はChromeの同期ストレージだけに保存します。

設計

YouTubeは画面遷移と再描画をページ全体のリロードなしで行うため、次の3層で防ぎます。

  1. src/background.js がブラウザのナビゲーションを監視し、直接アクセスとHistory APIによる /shorts/... 遷移をトップへ戻します。
  2. src/content.js がクリック、Enterキー、YouTube固有の画面遷移イベント、DOM更新を監視します。ページ側のルーティングが先に動く場合にも備えたガードです。
  3. src/rules.js に集約したセレクタで、Shorts専用棚、Shortsの個別カード、展開・折りたたみサイドバーを非表示にします。汎用の棚・カードはShortsリンクを含み、かつ通常の /watch リンクを含まない場合だけ非表示にします。通常の関連動画を含む親セクションは対象にせず、表示言語にも依存しません。

URL判定とDOMセレクタを src/rules.js に集約しているため、YouTube側のDOM変更があった場合もこのファイルを中心に更新できます。

ローカルで読み込む

  1. Chrome系ブラウザで拡張機能管理画面(Chromeの場合は chrome://extensions)を開きます。
  2. 「デベロッパー モード」を有効にします。
  3. 「パッケージ化されていない拡張機能を読み込む」を選びます。
  4. このディレクトリ /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要素名に依存しません。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages