block by sugi2000 fb70a14ef5042bd2fe911f23169dd422

Facebook Follow投稿・Reels非表示スクリプト

Facebook 広告・Follow/Join投稿・Reels非表示スクリプト

Facebookのタイムラインから、広告(Sponsored)・「Follow」「Join」ボタンが表示されている投稿(フォロー関係にない人の投稿、未参加のパブリックグループの投稿)・Reelsなどのセクションを自動的に非表示にするUserscriptです。

機能

広告をどう見分けているか

Facebookの「Sponsored」表記は、1文字ずつ <span> に分割し、ダミー文字を混ぜてCSSで隠すという難読化がされています。そのため textContent での文字列一致は機能しません。

本スクリプトは2系統で判定します。

1. 構造的な印(主)

以下のいずれかが投稿内に存在すれば広告と判定します。いずれも通常の投稿には現れません。

セレクタ 内容
a[href^="/ads/about"] 「Sponsored」表記のリンク先
[data-ad-rendering-role="cta-"] CTAボタンの枠
[data-ad-video] 広告動画
[data-ad-rendering-role="image"] 広告画像

data-ad-rendering-roleprofile_name / story_message / like_button など通常の投稿にも付く属性です。値まで見ないと広告判定には使えません。

2. 難読化ラベルの読み取り(保険)

innerText はCSSで非表示になった文字を除外するため、ダミー文字を取り除いた実際の表示文字列が得られます。これが「Sponsored」「広告」等と一致する場合も広告と判定します。

投稿の外枠の特定

data-ad-rendering-role="profile_name"(投稿ヘッダー)は1投稿につき必ず1つだけ存在します。これを1つだけ含む限り親要素へ上がり続け、2つ目が入る直前で停止することで投稿の外枠を決めます。

クラス名(x1fey0fg など)や data-virtualized の有無に依存しないため、Facebook側の変更に比較的強い構造です。

インストール方法

1. Tampermonkeyをインストール

お使いのブラウザに合わせて拡張機能をインストールしてください。

2. スクリプトをインストール

  1. Tampermonkeyのアイコンをクリックし、「新しいスクリプトを作成」を選択します
  2. デフォルトで入力されているコードをすべて削除します
  3. このGistのコードをコピーして貼り付けます
  4. Ctrl+S(Mac は Cmd+S)で保存します

非表示の対象を追加・変更するには

スクリプト内の各リストにラベル文字列を追加することで、非表示対象を拡張できます。英語・日本語UIに対応しています。他言語UIをお使いの場合も同様に追加してください。

const HIDE_LABELS = new Set([
  'Follow', 'Join',      // 英語UI
  'フォロー', '参加',    // 日本語UI
]);

const SECTION_LABELS = new Set([
  'Reels', 'リール',
  'People you may know', '知り合いかも',
  'Suggested for you', 'あなたへのおすすめ',
]);

動作確認・デバッグ

Facebookの構造変更で誤判定が起きた場合、以下で切り分けられます。

DEBUGモード

スクリプト冒頭の DEBUGtrue にすると、非表示にする代わりに赤枠を付けてコンソールに出力します。何が対象になっているかが一目で分かります。

const DEBUG = true;

コンソールコマンド

コマンド 内容
__fbhideShow() 非表示にした要素を赤枠付きで再表示し、判定理由(ad / ad-label / follow / section)をログ出力
__fbhideLabels() 難読化ラベルが実際に何と読めているかを一覧表示

非表示にした要素には data-fbhide="判定理由" 属性が付きます。DevToolsで [data-fbhide] を検索すれば対象を確認できます。

注意事項

facebook-hide-follow.user.js