1. はじめに
「推しスケ」(以下「本サービス」)は、VTuber・配信者のスケジュール画像をAIで読み取り、iCal購読URLを通じてGoogle カレンダー・Apple カレンダー・Outlookなどどのカレンダーアプリでも利用できるようにするWebアプリケーションです。
本サービスはユーザーのプライバシーを尊重し、必要最小限の情報のみを取り扱います。このポリシーでは、本サービスが取得する情報とその利用方法について説明します。
対象ユーザー: 本サービスは18歳以上の方を対象としています。18歳未満の方はご利用いただけません。
提供地域 / Service Area: 本サービスは日本国内のユーザーを主な対象としています。EEA(欧州経済領域)・スイス・英国からのご利用はサポートしておりません。
This service is primarily intended for users in Japan. Use from the EEA (European Economic Area), Switzerland, and the United Kingdom is not supported.
2. 運営者
YoyogiPinball(以下「運営者」)
3. 取得する情報
本サービスが取得・利用する情報は以下の通りです。
3.1 Googleアカウント情報(認証時に取得)
ゲストモード(Googleログインなし)でご利用の場合、このセクションに記載のGoogleアカウント情報は一切取得されません。
Google OAuth 2.0 を通じて、以下の情報を取得します。
| 情報 | 用途 | 保存先 |
|---|---|---|
| ユーザー識別子 Googleが発行する匿名の識別子 | 無料枠の利用回数カウント ハッシュ化して使用 ※ ゲストモード時はGoogleアカウントの代わりにゲストIDをハッシュ化して使用します | サーバー ハッシュ値のみ |
| OAuthアクセストークン | Googleカレンダーへのアクセス | 暗号化されたhttpOnly Cookie セッション期間中有効。データベースには保存しません |
要求するOAuthスコープは以下のとおりです。
openid— ユーザー認証https://www.googleapis.com/auth/calendar— Googleカレンダーの読み取り・書き込み。本サービスでは、推しスケ専用カレンダーのスケジュール表示(ホーム画面・個別推しカレンダー)および個別推しカレンダー上での予定の編集・削除にのみ使用します。ユーザーの既存の予定を本サービスが無断で変更・削除することはありません。
取得しない情報: メールアドレス、氏名、プロフィール画像、連絡先リスト、Googleドライブのデータ、その他Googleアカウントに紐づく情報。
3.2 ブラウザに保存する情報(localStorage)
以下の情報はユーザーのブラウザ内(localStorage)にのみ保存され、サーバーには送信されません。
- 推し(お気に入りの配信者)の登録情報: 名前、所属、チャンネルURL
- 選択中の推しのID
- 推しスケ専用カレンダーのID(ログイン済みユーザーのみ)
- Gemini APIキー(BYOKモード利用時のみ。後述)
- ゲストモードフラグ(ゲストモード利用時のみ)
- ゲストID: 無料枠カウント用の匿名識別子。UUIDとして生成され、Googleアカウントと紐づかない(ゲストモード利用時のみ)
- ゲスト保存予定: 手動保存したスケジュールデータ(ゲストモード利用時のみ)
ゲストモードからGoogleログインへの切り替え時は、アカウントの状態に応じてデータの扱いが異なります。 推しスケのデータが存在しないGoogleアカウントでログインした場合は、ゲストモードのデータが当該アカウントに移行しクラウドに保存されます。 すでにデータが存在するアカウントでログインした場合は、アカウント側のデータが優先され、ゲストモードのデータは削除されます。
3.3 サーバーに保存する情報
| 情報 | 内容 | 保存期間 |
|---|---|---|
| 利用回数カウント | ユーザー識別子をソルト付きSHA-256でハッシュ化した値と、週ごとの解析回数 ※ ゲストモード時はGoogleアカウントの代わりにゲストIDをハッシュ化して使用 | 1週間で自動削除 |
| 推し情報(クラウド同期) ログイン済みユーザーのみ | 推し名簿・選択中の推しID・カレンダーID・最終更新日時 | 365日で自動削除(TTL) |
| iCalトークン iCal購読URL発行済みユーザーのみ | ランダム生成トークンとiCal配信用のスケジュールデータ | 手動リセットまたはアカウント削除まで |
ソルト付きSHA-256によるハッシュ化により、サーバー上のデータから個人を特定することは極めて困難です。
3.4 取得・保存しない情報
以下の情報は、本サービスのサーバーに保存されません。
- アップロードされたスケジュール画像
【無料枠モード】運営者のサーバーのメモリ上で一時的に処理してGemini APIに送信し、即座に破棄します(サーバーには保持しません)。
【BYOKモード】ユーザーの端末(ブラウザ)のメモリ上で処理し、ブラウザから直接Gemini APIに送信されます。運営者のサーバーには送信されません。 - Googleカレンダーの予定データ
ユーザーのOAuthトークンで直接Google Calendar APIを参照します。取得した予定データはサーバーに保存されません。 - OAuthトークン
暗号化されたhttpOnly Cookieに保存。Upstash Redis等のデータベースには保存しません。 - メールアドレスやその他の個人を特定できる情報
4. 情報の利用目的
取得した情報は、以下の目的でのみ使用します。
| 使用する情報 | 目的 |
|---|---|
| OAuthアクセストークン | Googleカレンダーのスケジュール表示(ホーム・個別推しカレンダー画面) ※ ユーザーが画面を表示した際のみ参照します。バックグラウンドでの自動処理は行いません |
| アップロード画像 一時的な処理のみ | スケジュール画像のAI解析 |
| ユーザー識別子のハッシュ値 | 無料枠の利用回数管理 |
| 推し情報・iCalトークン | 複数デバイス間のデータ同期・iCal購読URLの配信 |
サービスの安定運用・品質向上を目的として、個人を特定しない形での利用統計情報(解析・登録件数・利用モードの集計)を収集・分析することがあります。収集する統計情報にはユーザーIDやIPアドレスなどの個人情報は含まれません。
広告・トラッキング・プロファイリング・第三者への販売など、上記以外の目的には一切使用しません。
5. 第三者サービスとの連携
本サービスは以下の第三者サービスを利用しています。
Google Calendar API
- ユーザー自身のOAuthトークンを使用して、推しスケ専用カレンダーのスケジュールを読み取り、ホーム画面・個別推しカレンダーに表示します。
- 運営者がユーザーのカレンダーデータを収集・保存することはありません。
- Google Calendar API経由で取得したカレンダーの予定データは、AIの解析や学習には一切送信されません。
Google Gemini API(無料枠モード)
- スケジュール画像の解析に使用します。
- 画像はサーバー経由でGoogleのGemini APIに送信され、解析結果を受け取ります。
- 無料枠(Unpaid Services)では、送信した画像や生成結果がGoogleの製品改善・機械学習技術の開発に使用されることがあります。品質向上のため、人間のレビュアーが匿名化された内容を確認・注釈する場合もあります。
- 個人情報・機密情報・センシティブな情報は送信しないでください(公開されている配信スケジュール画像のみご利用ください)。
- 画像・解析結果ともに当サービスのサーバーには保存しません。
- 詳細は Gemini API Additional Terms of Service を参照してください
Google Gemini API(BYOKモード)
- ユーザーが自身のGemini APIキーを使用するモードです。
- APIキーはブラウザのlocalStorageにのみ保存され、運営者のサーバーには送信されません。
- ブラウザから直接GoogleのGemini APIを呼び出します(サーバーを経由しません)。
- Google Cloud Projectに有効なBillingアカウントが紐づいていればPaid Services扱いとなり、上記の「改善使用」は行われません。
- ユーザー自身のGemini API利用規約が適用されます。
Upstash Redis(データベースサービス)
- 無料枠の利用回数カウント、推しデータのクラウド同期、iCal購読URL管理に使用します。
- 利用回数カウントに保存されるのはハッシュ化されたユーザー識別子と回数のみです。
Vercel
- 本サービスのホスティングに使用しています。
- Vercelのインフラストラクチャにより、アクセスログ(IPアドレス等)が一時的に記録される場合があります。これはVercelのプライバシーポリシーに従います。
- 本サービスは Vercel Analytics を利用しており、機能の利用頻度(解析・登録件数・利用モード等)の匿名イベントを収集しています。IPアドレス・ユーザーIDなどの個人情報は送信されません。
- Vercelのプライバシーポリシー: https://vercel.com/legal/privacy-policy
6. データの保管と削除
| データ | 保管場所 | 保管期間 |
|---|---|---|
| 利用回数カウント(ハッシュ値) | Upstash Redis | 1週間で自動削除(TTL) |
| 推し情報・設定 | ブラウザ localStorage | ユーザーが削除するまで |
| 推し情報(クラウド同期) ログイン済みユーザーのみ | Upstash Redis | 365日で自動削除(TTL) |
| OAuthトークン | httpOnly Cookie(暗号化) | セッション期間中有効 |
| アップロード画像 | ブラウザ メモリ | 解析完了後に即破棄 |
| ゲストモードフラグ・ゲストID・ゲスト保存予定 ゲストモード利用時のみ | ブラウザ localStorage | ブラウザのlocalStorageがクリアされるまで(Googleログイン切り替え時または手動削除) |
ゲスト識別Cookie(oshi-guest)ゲストモード利用時のみ | ブラウザ Cookie | 30日(Max-Age設定)、Googleログイン・ログアウト時、またはブラウザ手動削除まで(いずれか早い方) |
7. ユーザーの権利
ユーザーは以下の操作をいつでも行うことができます。
- ブラウザ内データの削除
本サービスの設定画面から、localStorageに保存された全データを削除できます。ブラウザの設定から本サービスのデータを削除することもできます。 - Googleアカウントとの連携解除
Googleアカウントの権限管理ページから、本サービスへのアクセス権を取り消すことができます。 - カレンダーデータの管理
Googleカレンダー上の推しスケ専用カレンダーや予定は、Googleカレンダー上で自由に編集・削除できます。iCal購読URLのリセットは設定画面から行えます。 - サーバー側データの削除
サーバーに保存されたハッシュ値は1週間で自動的に削除されます。即時削除をご希望の場合は下記連絡先までお問い合わせください。 - Gemini APIへ送信した画像の削除
無料枠モードでGemini APIに送信された画像の削除については、Googleのポリシーに従います。詳細は Gemini API Additional Terms of Service をご確認ください。 - データに関するお問い合わせ
下記の連絡先から、保有データの確認・削除を依頼できます。
8. セキュリティ対策
本サービスでは、以下のセキュリティ対策を実施しています。
- OAuthトークンは暗号化されたhttpOnly Cookieに保持(データベースには保存しない)
- サーバー上のユーザー識別情報はソルト付きハッシュで匿名化
- ユーザー入力のサニタイズ処理
- HTTPS通信の強制(Vercelによる)
- CORSヘッダーの適切な設定
9. Google API Services User Data Policy への準拠
本サービスでのGoogleユーザーデータの取り扱いは Google API Services User Data Policy(Limited Use requirements含む)に準拠しています。Google API経由で取得した情報の利用・転送はLimited Use requirementsにより制限されます。
具体的には以下のとおりです。
- Google APIから取得したデータは、本ポリシーに記載された目的にのみ使用します。
- ユーザーの同意なく第三者にデータを提供しません。
- アクセスするスコープは必要最小限に限定しています。
- Googleから取得したデータを広告に使用しません。
10. ポリシーの変更
ポリシーを変更する場合は本サービス上で告知します。重要な変更は施行前に通知します。
11. お問い合わせ
お問い合わせは下記フォームよりご連絡ください。
お問い合わせフォーム: https://forms.gle/AjhtPztddz6pttJd6