
wBlock v3.0.0
Safari向けの次世代広告ブロッカー。macOS、iOS、iPadOS、visionOSで無料かつオープンソースで利用でき、750,000件のルール、ユーザースクリプト、ユーザースタイル、要素削除機能を備えています。
Safariは広告ブロッカーにほとんど余地を与えていない。各コンテンツブロッカーには15万件のルールが割り当てられ、ページのJavaScriptには触れられない。wBlockは5つのブロッカー(75万件のルール)に加えて、ルールでは対応できないすべてを担うスクリプト拡張機能を搭載している。これにより、スクリプトレット、コスメティックフィルター、ユーザースクリプトとユーザースタイル、要素削除ツール、そしてYouTubeやその他ほとんどのサイト向けのネイティブ動画プレイヤーをカバーする。
無料で、何も収集しない。リストが誤動作した場合は、何にコンパイルされたか、Safariがどの行を破棄したか、前回の更新で何が変わったかを確認できる。
[!TIP] wBlock、uBlock Origin Lite、Wipr、AdGuardのどれを選ぶか迷っている? 比較記事を書いた。
含まれるもの
ブロッキング
- AdGuard構文のフィルターリストをSafariルールにコンパイルし、5つのブロッカーに分散。マッチングはSafari自身が行い、wBlockはアイドル時に約40 MB程度。
- 優れたデフォルト設定、言語に応じて選ばれる地域別リスト、迷惑要素やCookieバナー用のリスト、そしてURL、貼り付け、ファイルで追加したものすべて。
- 更新は1時間ごとから週1回まで、選んだスケジュールで実行。差分パッチを公開しているリストは変更分だけをダウンロードする。macOSでは小さな起動エージェントがアプリを閉じていてもチェックを続ける。
utm_*のようなトラッキングパラメータはリンクから除去され、短縮リンクは展開される。これはデフォルトで有効。- 容量バーと、どの行が未対応、重複、またはスクリプト拡張機能に渡されたかを示すルールビューア。
ユーザースクリプトとユーザースタイル
GM_*とGM.*の両方に対応したGreasemonkey互換エンジン。GM_xmlhttpRequestはスクリプトが@connectに列挙したホストにのみ到達できる。- UserCSSテーマ(
.user.css)。Less、Sass、Stylusにも対応。詳細は docs/USERSTYLES.md。 - Tube Cleaner、Player Cleaner、DeArrow、Dark Reader、Return YouTube Dislike、Bypass Paywalls Clean、AdGuard Extra、AdGuard Popup Blocker、TwitchAdSolutionsを収録した組み込みカタログ。収録されているものはすべてオフで出荷されるが、唯一の例外はアンチアドブロックを無効化するtinyShield。
ネイティブ動画
Tube CleanerとPlayer Cleanerは、ページが描画される前にサイトの動画をSafariに引き渡す。通常の <video controls> タグと同じように、ピクチャ・イン・ピクチャ、バックグラウンド音声、フルスクリーン、Now Playingが利用できる。
Tube CleanerはYouTube用のもの。YouTube自身のストリームを維持し、チャプターとキャプションをSafariのネイティブメニューに配置し、カテゴリごとの設定でSponsorBlockを通じてスポンサーをスキップする。タイトルとサムネイルも改善したい場合は、DeArrowが別のスクリプトとして用意されている。Player Cleanerはvideo.js、JW Player、Plyr、Flowplayer、MediaElement、Clappr、Media Chrome、そしてArchive.orgのようなshadow-rootプレイヤーでも同じ役割を果たし、サイトごとに再生速度、音量、キャプション、再生位置を記憶する。
どちらもアプリとは別に、独自のスケジュールで wBlock-userscripts から更新される。広告はブロックしない(それはフィルターリストの役割)。
サイトごとの制御
任意のサイトでツールバーボタンをクリックすると、フィルタリング、ユーザースクリプト、自動再生の個別スイッチと、要素削除ツールが表示される。フィルターリストやユーザースクリプトを特定のサイトに限定したり、それらのサイトでオフにしたりもできる。削除ツールのルールは設定で引き続き編集可能。
すべてのデバイス
macOS、iOS、iPadOS、visionOSで1つのアプリ。iCloudがリスト、カスタムフィルター、ユーザースクリプト、許可リスト、設定を同期する。ローカルに留めたい場合は、代わりにバックアップをエクスポートできる。
スクリーンショット
macOSでのユーザースクリプト |
|
Tube CleanerのSponsorBlock |
iPhoneでのSafariポップアップ |
macOSでの設定 |
|
インストール
- App Store。自動更新され、私ならこれを使う。
- Homebrew:
brew tap 0xcub3/wblock && brew install --cask wblock - 最新リリース のDMG。
3つとも同じビルド。初回起動時にwBlockがSafariで拡張機能を有効にする手順を案内する。
TestFlightベータ
TestFlight はAppleの任意のベータ配布サービス。私は署名済みベータビルドを配布し、安定版リリース前にフィードバックを得るために使っている。上記の安定版ビルドをインストールするのにTestFlightや有料のApple Developerメンバーシップは必要ない。
Appleはベータのクラッシュログと使用情報を自動的に収集し、開発者と共有する。テスト中はこの収集をオプトアウトできない。あなたが送信するフィードバックやスクリーンショットも共有され、プライベートな内容を含む可能性がある。参加する前に AppleのTestFlightプライバシー通知 と wBlockのプライバシーポリシーのTestFlightセクション を読んでほしい。
仕組み
wBlockは3つの部分からなる。アプリがリストをダウンロードし、SafariConverterLib 4.3.0で変換し、その結果を5つのコンテンツブロッカー(Ads、Privacy、Security、Foreign、Custom)に分割する。Safariがそれらをコンパイルして独自に適用し、ページ読み込み中にwBlockのコードは一切実行されない。静的ルールで表現できないものはすべてwBlock Scripts拡張機能に渡される。
フィルターデータはLZ4圧縮付きのProtocol Buffersで保持され、大規模なコンパイルでメモリが急増しないようディスクにストリーミングされる。1つのリストを変更した場合、そのリストが供給するブロッカーのみが再ビルドされる。変更を確認するにはSafariがそれらを再読み込みする必要があり、これを回避できるアプリは存在しない。
比較記事では、サイトでフィルタリングをオフにしたときにwBlockが書き込む正確なルールを示している。
FAQ
wBlockを他の広告ブロッカーと併用すべき?
いいえ。汎用ブロッカーは1つだけ選んでほしい。
2つのブロッカーは同じリクエストと同じページを奪い合う。Mozillaの webRequestドキュメント によれば、2つの拡張機能が1つのレスポンスを競合する形で変更した場合、勝つのは片方だけだ。uBlock OriginのREADMEには「uBOを他のコンテンツブロッカーと併用しないでください」とあり(出典)、AdGuardは読み込みの遅さ、サイトの破損、動画の問題について警告している(出典)。
さらに、バグ報告が役に立たなくなる。2つのブロッカーが有効だと、どちらが広告を通したのか、どちらがサイトを壊したのか判断できない。報告する前に必ずもう片方をオフにしてほしい。
フィルターリストをもっと有効にすべき?
通常は不要。デフォルトでほとんどの広告とトラッカーを捕捉しており、他の一般的なリストはほとんど重複している。余分なリストはSafariのルール上限を消費し、より多くのサイトを壊す。迷惑要素リスト(Cookieバナー、ポップアップ、ソーシャルウィジェット)と、非英語サイト向けの地域別リストは有効にする価値がある。