YouTubeのレコメンデーションから特定の単語を含むものを除去したい。

つくりたいもの

YouTubeのレコメンデーションから特定の単語を含む動画/配信を除外(とりあえず見えなく)する。

できたもの


戦略

  • トップのレコメンデーションはytd-browse要素配下、動画/配信ページサイドのレコメンデーションはytd-watch-next-secondary-results-renderer要素配下に情報が入っている。
  • これらの要素は必要になるまで生成されない。一度生成されたら、後は表示と非表示を切り替えて処理している模様。
  • 各動画/配信はトップページはytd-rich-item-renderer要素、サイドはytd-compact-video-renderer要素に情報が入っている。
  • 動画/配信名は要素をJS上でouterText属性参照で取れる。チャンネル名とかほかの要素も取れるけどひとまず気にしない。
  • ytd-browse要素、ytd-watch-next-secondary-results-renderer要素はいずれもidがcontentのdiv要素配下にある。

これらを踏まえ、idがcontentの要素を監視し、ytd-browse要素、ytd-watch-next-secondary-results-renderer要素それぞれが存在すれば各配下の動画/配信をフィルタ監視を開始するという処理にしました。
DRYの観点とかちょっと気になるのでもし機能を増やすことがあればリファクタするかも。

なんでこんなものを作ったかの経緯になるのですが、YouTube中心で活動されているとある歌手の方がおりまして、その方の歌に半ば惚れ込んでいるような感じだったのですが、それまで月1回配信があるかどうかという感じだったのがある時期を境に突然ゲーム配信の頻度が増えまして(それこそYouTubeを開いたらだいたいライブ配信中の表示が出てくるくらい)、坊主憎けりゃ袈裟まで憎いの心理で一時期作品まで嫌いに傾いていた時期があったんですね。ただ、先日ふとその方の歌を改めて聴く機会がありまして、やっぱり離れられないと実感してしまったんですね。となればもうこういったことを起こさないように見えないようにしよう、という苦い経験があってものです。