最近Youtubeを見ていて不快なコンテンツが検索キーワードや閲覧履歴に全く関連なく挙がってくることが多くなったと思う。一時期大量に涌いた「いかがでした」系ゴミサイトのように、Youtubeピックアップからの拾われやすさだけに全力を尽くした内容スカスカor不快な見た目or焼き増しのコンテンツが蛆のように涌いて出てYoutubeトップ画面なんかもうヒドい。
広告ブロッカーとして有用なアドオン「uBlock Origin」を用いて、特定任意のキーワードを含むタイトルやチャンネルをブロックする方法は、単純に「マイフィルター(My Filter)」にXpathを使用して任意のキーワードを指定すればいいだけ。
※注意1(広告ブロックは飯のタネをつぶす行為 自分の判断・責任で)※
「uBlock Origin」はデフォルトでは広告ブロッカーとして振舞う。広告ブロッカーは、YoutubeやYoutube上のコンテンツクリエイター(いわゆる配信者や動画投稿者)のビジネス(飯のタネ)を潰してしまうため、常用は推奨できない。とくにYoutube Premiumなどの機能やライブ配信システムと広告は密接に絡んでおり、「uBlock Origin」を導入することで機能上(ライブ配信、チャット、投げ銭、課金コンテンツ)に大きな問題が生じる可能性がある。導入に当たっては必ず自己責任で行うこと。
Youtube上に応援したい人がいるのに、どうしてもこれらのブロックを利用したいのであれば、「uBlock Origin」のデフォルトで入ってるフィルターを全部OFFにして、マイフィルターだけ使用すれば影響は最小限になるかもしれん。知らんけど。
※注意2(今後どうなるかわからん)※
Youtube君は広告ブロッカーにとても鋭敏に反応し、広告ブロックをブロックすることで有名。
2023年12月時点で下記記載の技は有効であるものの、今後どうなるかはわからない。
でもXMLで構成されている以上、Xpathの記述変えればどんなのでも対応できそうな・・・。まぁ自己責任で。
動画タイトルに特定キーワードを含んだらブロックしたい
「uBlock Origin」のダッシュボードから、「マイフィルター(My Filter)」に移動して、
マイフィルター入力画面で下記のような内容を入力する。
! [トップ画面] Youtube タイトルでブロック youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="video-title"], "ゴミ動画")])
! [検索結果画面] Youtube タイトルでブロック youtube.com##:xpath(//ytd-video-renderer[contains(.//a[@id="video-title"], "ゴミ動画"")])
先頭が「!」で始まる行はコメント扱いされるため、実質必要なのは2行目となる。
(youtubeトップ画面と、検索結果一覧画面それぞれでブロックする必要がある)
今回の場合、Youtube上で動画のタイトル部分に「ゴミ動画」というキーワードを含んでいた場合、uBlock Originによる非表示の対象となり、画面に表示されにくくなる。
(真に憎たらしいことに、スクロールなどによる差動読み込みの場合は一瞬だけ表示されてしまったりする)
上記の「ゴミ動画」の部分を、「岸田親子」に変えれば、動画タイトルに「岸田親子」を含むものがあれば軒並みブロック対象になる。
チャンネル名に特定キーワードを含んだらブロックしたい
「uBlock Origin」のダッシュボードから、「マイフィルター(My Filter)」に移動して、
マイフィルター入力画面で下記のような内容を入力する。
! [トップ画面] Youtube チャンネル名でブロック youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "ゴミチャン")])
! [検索結果画面] Youtube チャンネル名でブロック youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "ゴミチャン")])
先頭が「!」で始まる行はコメント扱いされるため、実質必要なのは2行目となる。
(youtubeトップ画面と、検索結果一覧画面それぞれでブロックする必要がある)
今回の場合、Youtube上で動画のチャンネル部分に「ゴミチャン」というキーワードを含んでいた場合、uBlock Originによる非表示の対象となり、画面に表示されにくくなる。
(真に憎たらしいことに、Ajaxなどによる差動読み込みの場合は一瞬だけ表示されてしまったりする)
キーワードは一つしか指定できないのか
マイフィルターで処理しきれる数だけ何個もルールを投入すれば実質無限に指定できる。
(無限の解釈には個人差があります)
! ################################################## トップ画面 でのブロック ! Youtube タイトルでブロック (トップ画面) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="video-title"], "韓国人")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="video-title"], "接客態度")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="video-title"], "BREAKING")]) ! Youtube チャンネル名でブロック (トップ画面) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "フィッシャーズ")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "東海オンエア")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "コムドット")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "ヒカル(Hikaru)")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "jun channel")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "カノックスター")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "SAWAYAN")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "あめんぼぷらす")]) youtube.com##:xpath(//ytd-rich-item-renderer[contains(.//yt-formatted-string[@id="text"], "QuizKnock")]) ! ################################################## 検索結果一覧 でのブロック ! Youtube タイトルでブロック (検索結果一覧) youtube.com##:xpath(//ytd-video-renderer[contains(.//a[@id="video-title"], "韓国人")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//a[@id="video-title"], "接客態度")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//a[@id="video-title"], "BREAKING")]) ! Youtube タイトルでブロック (検索結果一覧) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "フィッシャーズ")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "東海オンエア")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "コムドット")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "ヒカル(Hikaru)")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "jun channel")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "カノックスター")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "SAWAYAN")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "あめんぼぷらす")]) youtube.com##:xpath(//ytd-video-renderer[contains(.//yt-formatted-string[@id="text"], "QuizKnock")])
上記は今日たまたまYoutubeのトップに上がってたやつを例として挙げただけなので、上記キーワードを含んでるものがゴミだとかそういう話ではないので、被害妄想で突っかかってこないように。
個人的に使ってるルールでは主に虫、不快な見た目、妄想ドラマ、Wikipedia焼き増し、中身スカスカ関係をブロックしてる。
ブロックするキーワードが増えれば増えるほどCPU処理が大きくなるので、
タブレットなどのバッテリーで駆動している端末では極力数を絞ったほうがいいかもしれない。
キーワードは短すぎると他のものを巻き込んでしまうので、可能であれば固有名詞単位で区切ったほうがいい。
さぁこれでしばらく変なものを見なくても済みそう。
残念ながらShortsには対応してないんだなこれが・・・。