プライバシー
ポリシー

はじめに

「Vuora」(旧称: WEB閲覧アシスト / WEB制限解除サポート、以下「本拡張機能」)は、ユーザーのプライバシーを尊重し、個人情報の保護に努めます。本プライバシーポリシーは、本拡張機能におけるデータの取り扱いについて説明します。

収集するデータ

本拡張機能は、個人情報を一切収集しません。

ローカルに保存するデータ

本拡張機能は、以下の設定データをユーザーの端末内(chrome.storage.local)にのみ保存します。

これらの値は端末内にのみ保存され、外部サーバーへの送信は一切行いません。

なお、Chrome 版では音量ブースター機能の現在 gain 値(タブごと)はオフスクリーン ドキュメントのメモリ上にのみ保持され、永続化されません。タブを閉じる、スライダーを 100% に戻して全サブトグル・ミュートを OFF にする、または拡張機能を無効化すると即座に解放されます。Firefox 版では現在 gain 値はページ内音声処理パイプライン(後述「タブ音声へのアクセス」参照)のメモリ上にのみ保持され、同様に永続化されません。

タブ音声へのアクセス

「音量ブースター」のスライダーが 100% 以外の値に設定されている場合、または 100% のままでも自動歪み防止 / ナイトモード / イコライザのいずれかを有効にした場合のみ、chrome.tabCapture API でアクティブタブの音声ストリームを取得し、オフスクリーン ドキュメント内の AudioContext で増幅・圧縮・周波数調整を行って再出力します。音声データは外部に送信されず、録音・保存も一切行いません。タブを閉じる、スライダーを 100% に戻して全サブトグルを OFF にする、または拡張機能を無効化すると即座にストリームは解放されます。

Firefox 版chrome.tabCapture が利用できないため、代わりにページ内の Web Audio 処理(MediaElementSource)を使用します。音量ブースターが有効なときのみ、ページ内の <video> / <audio> 要素の音声出力を同じページ内の AudioContext に接続して増幅・圧縮・周波数調整を行います。処理はすべて当該ページ内で完結し(オフスクリーン ドキュメントもタブ音声ストリームの取得も使いません)、音声データの録音・保存・外部送信は一切行いません。設定を等倍へ戻す・マスタートグルを OFF にすると、増幅・圧縮・周波数調整はすべて即座に停止します(音声はそのまま素通しになります)。Firefox 固有の技術的制約により、内部の音声パイプライン自体は無音の状態でページ内に残置される場合があり、動画/音声要素がページから取り除かれるか、ページを閉じるまで解放されないことがあります(Firefox では再生中の要素の接続を外すと音声出力自体が止まってしまうため、切断せず残置する設計です)。DRM 保護動画のサイトでは本処理は行いません。

タブ画面(スクリーンキャプチャ)へのアクセス

「ルーペ」機能のマスタートグルを ON にしている間のみ、chrome.tabs.captureVisibleTab API でアクティブタブの可視領域を JPEG 静止画として取得し、円形レンズの拡大鏡として content script の DOM 上で表示します。取得した画像データは Blob URL に変換され、現在のタブの content script 内でのみ参照されます。拡張機能のメモリ外(外部サーバー / ローカルファイル / クリップボード等)には一切送信・保存しません。マスタートグルを OFF にする、画面を左クリックする、タブをバックグラウンドにする、または拡張機能を無効化した時点で、保持していた Blob URL は URL.revokeObjectURL で即座に解放されます。再キャプチャはユーザーがスクロールした際 / DOM 構造が大きく変化した際 / ウィンドウをリサイズした際に 500ms の debounce を経て自動的に発火し、Chrome 公式の 2fps レート上限の範囲内で実行されます。

データの共有

本拡張機能は、いかなるデータも第三者と共有しません。

ネットワーク通信

本拡張機能は、以下に明示する 3 つの例外を除き、第三者の外部サーバーへの通信を一切行いません。

例外 1: 画像ダウンロード(Instagram / TikTok クリーナーのサブ機能)

Instagram / TikTok クリーナーのサブ機能「画像にダウンロードボタンを表示」(オプトイン・デフォルト OFF)を有効化した場合、ユーザーがダウンロードボタンをクリックした瞬間にのみ、各サイトの正規 CDN(Instagram: scontent-*.cdninstagram.com / scontent-*.fna.fbcdn.net、TikTok: p<数字>.tiktokcdn.com / p<数字>.tiktokcdn-us.com)に対して画像 GET を発行します。これは現にブラウザが <img> タグでロードしているドメインと同一であり、credentials: "omit" でクッキーは送信せず、redirect: "manual" で 302 経由の第三者ドメイン送信を遮断し、referrerPolicy: "no-referrer" でリファラ送信もゼロにします。それ以外のオリジンへの代理 fetch はホスト名ホワイトリストで遮断します(YouTube では本機能は提供されません)。ダウンロードした画像は Blob URL + <a download> 経由でローカルに保存されるのみで、外部送信は一切行いません。

例外 2: 接続モニター(YouTube 機能拡張のサブ機能)

YouTube 機能拡張のサブ機能「接続モニター」(searchFixerFeatures.connectionMonitor、オプトイン・デフォルト OFF)を有効化し、かつ YouTube のライブ配信を視聴している間のみ、ライブ配信視聴中のバッファリング原因(自分の回線 / 端末性能 / YouTube CDN / 国際線経路 / etc.)を切り分ける in-player HUD のために、以下 2 つの公開ヘルスチェック endpoint への RTT 計測 fetch を 5 秒周期で発行します。

これらの fetch は以下のプライバシー設定で実行されます。

送信される情報は「Vuora が ON であるという事実」と「視聴中のおおよその時刻」のみであり、ユーザー識別子・クッキー・YouTube 視聴履歴・チャンネル名・動画 ID・自分の IP アドレス以外の個人データは一切送信されません(IP アドレスは HTTP リクエスト送信時に通信プロトコル上必然的に対向サーバーへ届きますが、これは通常の Web ブラウジング全般と同等の性質です)。送信先 URL は actions.js の定数として固定されており、ユーザー操作や設定では変更できません(テストで値固定をアサート済み)。endpoint は Google と Cloudflare が一般公開している計測用エンドポイントであり、Vuora 専用に運用するサーバーは存在しません。

接続モニターサブ機能 OFF 時 / YouTube 機能拡張のマスタートグル OFF 時 / YouTube ライブ視聴中以外(VOD 動画視聴中 / 別ページ閲覧中)には、これらの fetch は 一切発行されません。計測した RTT 値は content script スコープのメモリ ring buffer (最大 6 サンプル / 30 秒分) にのみ保持され、永続化されません。マスター OFF / サブ機能 OFF / overlay 撤去で即座に破棄されます。

例外 3: Gemini Notebook 送信(YouTube 機能拡張のサブ機能)

YouTube 機能拡張のサブ機能「Gemini Notebook 送信」(searchFixerFeatures.notebookLmSend、オプトイン・デフォルト OFF)を有効化しているとき、Google の Gemini Notebook(https://notebooklm.google.com)に対して以下の通信を行います。

Gemini Notebook から読み取るだけの通信(送信ボタンが表示される対象ページで、選択肢を先に用意するために行います。YouTube の視聴内容・動画 URL・ユーザー識別子は一切送信しません):

ユーザーが送信ボタンを押して送信先を選んだ瞬間にのみ行う通信:

複数の Google アカウントにログインしている場合、送信先アカウントはポップオーバーの「Google アカウント」欄で選べます(選択内容は端末内の notebookLmAccountIndex に保存され、外部送信はしません)。既定では通常ログインしているアカウント(authuser=0)が使われます。

送信される情報は、ユーザーがそのとき選んだ YouTube 動画の URL(https://www.youtube.com/watch?v=... 形式に正規化したもの)と、新規作成時のノートブック名(ページタイトルまたは検索語から生成)のみです。視聴履歴の収集、バックグラウンドでの自動送信、ユーザー識別子の付与は一切行いません。送信先は Gemini Notebook 以外に存在せず、Vuora 専用に運用するサーバーもありません。

認証にはブラウザに既に保存されている Google のログインセッション(クッキー)を利用します。本拡張機能は Google の認証情報を読み取らず、保存もせず、他のいかなる宛先にも送信しません。Gemini Notebook にログインしていない場合、送信は失敗し、ログインを促す表示のみを行います。

Gemini Notebook には公開 API が存在しないため、通信には Gemini Notebook の Web アプリ自身が使用する内部エンドポイントを利用します。この仕様は Google 側の都合で予告なく変更される場合があり、その際は本機能が一時的に動作しなくなることがあります。

本サブ機能 OFF 時 / YouTube 機能拡張のマスタートグル OFF 時には、送信ボタン自体が表示されず、これらの通信は 一切発行されません

権限の使用目的

v1.0.18 までの主な変更点(適用済み)

v1.0.x の旧バージョンが提供していた「右クリック解除 / テキスト選択解除 / 強制ペースト / 強制コピー / カスタム右クリック許可リスト」を含む「制限解除」機能は全て削除されました。それに伴い、enabled / contextMenuAllowDomains / volumeBoosterEnabled のストレージキーおよび clipboardRead / clipboardWrite / contextMenus / scripting 権限も削除されています。これら旧キーは自動アップデート時に Chrome の chrome.storage.local.remove で取り除かれます。

Instagram クリーナー機能(instagramCleanerEnabled / instagramCleanerFeatures)も同時に追加されました。いずれもデフォルト OFF(オプトイン)であり、ユーザーが有効化しない限り Instagram の表示には一切影響しません。Instagram クリーナーの動作はクライアント側の DOM 操作・CSS 適用のみで、外部サーバーへの送信は一切行いません。

YouTube Shorts 削除機能は YouTube 機能拡張のサブ機能 searchFixerFeatures.removeShorts として統合されました。これに伴い旧 ytShortsRemovalEnabled ストレージキーも削除されています。アップデート時、旧キーが true だったユーザーは searchFixerFeatures.removeShorts = true および searchFixerEnabled = true に自動転写されてから旧キーが削除されるため、Shorts 削除動作は継続されます。

v1.0.18 以降、YouTube 機能拡張に「コメント欄非表示」サブ機能(searchFixerFeatures.hideComments)が追加され、音量ブースターには自動歪み防止 / ナイトモードの各サブトグル(volumeBoosterAntiClipEnabled / volumeBoosterNightModeEnabled キー)と、EyeDropper API ベースのカラーピッカー機能(colorPickerHistory / colorPickerDefaultFormat / colorPickerHexHash キー)も追加されています。これらの新規キーはすべてデフォルト OFF または安全側のデフォルト値で、ユーザーが操作するまでサイト挙動には一切影響しません。

お問い合わせ

本プライバシーポリシーに関するご質問は、Chrome Web Storeのサポートページよりお問い合わせください。

変更について

本プライバシーポリシーは予告なく変更される場合があります。変更があった場合は、本ページを更新します。

この文書の正本

本ページは GitHub 上の docs/privacy-policy.md を正本として生成しています。差異がある場合は GitHub 側の内容が優先されます。