プライバシーポリシー
要点:Lyrimuseにはアカウント機能も広告もありません。1日に1回、匿名の使用状況データを送信しますが、曲名、アーティスト、アカウントは含まれず、設定 › 情報 › 診断とデータでオフにできます。歌詞を見つけるには再生中の曲について歌詞ソースに問い合わせる必要があるため、アプリはサードパーティのサービスと通信します。このページではそのすべてを記載しています。
1 対象範囲
このポリシーは、Lyrimuse macOSアプリ、アプリに同梱されている歌詞エンジン、そしてこのウェブサイト yudaotor.github.io/lyrimuse を対象とします。Lyrimuseは1人の開発者(Yudaotor)が管理しているオープンソースプロジェクトで、背後に企業はありません。
2 収集する情報:匿名の使用状況データ
サインアップも、ユーザアカウントもありません。開発者が受け取るのは匿名の使用状況データで、デフォルトでオンです。アプリは1日に最大1回、次の情報を送信します。Mac上で作成されるランダムなインストールID、LyrimuseとmacOSのバージョン、チップ、表示言語とシステム言語、オンになっている機能(表示場所、選択したプレーヤー、有効な歌詞ソースの数、翻訳と読みのスイッチ、Last.fmなどのアカウントを接続しているかどうか、信頼しているサードパーティのプレーヤーとブラウザ、ペアリングしたWebプレーヤー)、前日までにどのプレーヤーで音楽を再生したか、アプリが応答しなくなった回数です。Lyrimuseまたはその歌詞エンジンがクラッシュしたときは、クラッシュの概要も送信します。これは例外の種類とスタック上の関数名で、ファイルパスは取り除かれます。
曲名、アーティスト、アルバム、ファイルパス、アカウント名、認証情報は一切送信しません。送信先は開発者自身のサーバ(telemetry.yudaotor.me、Cloudflare Worker)で、IPアドレスは保存せず、Cloudflareがそこから判定した国または地域だけを保持します。設定 › 情報 › 診断とデータの匿名の使用状況データを送信をオフにすると(初回起動時のウェルカム画面にも同じスイッチがあります)、何も送信されません。
ソースコードは公開されているので、これは信じてもらうしかない話ではなく、自分で確かめられることです。
3 Macに保存されるもの
アプリが記憶するものはすべて、あなた自身のMac上に書き込まれます。主に~/Library/Application Support/me.yudaotor.lyrimuse、キャッシュは~/Library/Caches、ログは~/Library/Logs/Lyrimuse、アカウントの認証情報はログインキーチェーンに保存されます。
- 設定
- 歌詞のキャッシュ(一度再生した曲はオフラインでも表示できます)
- ローカルの再生履歴(ランキングと「過去のこの日」はここから作られます)
- 接続すると決めたサービスの認証情報(Last.fmのセッションキーやListenBrainzのトークンなど)
- 後述する外部リクエストのログ
これらは一切アップロードされません。これらのフォルダを削除すれば消えます。同梱のuninstall.sh --purgeを使うと、キーチェーンの項目と一緒に削除されます。
4 アプリが通信するサーバ
表に記載したアカウントの認証情報と、使用状況データに含まれるランダムなインストールIDを除き、これらのリクエストにはあなたやあなたのMacを特定できる情報は含まれません。各サービスから見えるのはリクエストそのものと、どのWebサイトとも同じように、あなたのIPアドレスです。
通常の使用時
| 目的 | サービス | 送信される内容 |
|---|---|---|
| 歌詞の検索 | NetEase Cloud Music、QQ Music、Kugou、Kuwo、Migu、Soda Music、Musixmatch、LRCLIB、LyricFind(YouTube Music経由)、Deezer、VIBE(Naver)、Genie(KT)、PetitLyrics(SyncPower)、AMLL歌詞ライブラリ(GitHub上、予備としてjsDelivr)。アカウントを接続すればApple Musicも | アーティスト、曲名、アルバム(一部のソースには曲の長さも)。Apple Musicにはメディアユーザトークンも送信しますが、送信先はAppleだけです |
| アーティスト名 | MusicBrainz | アーティスト名:どのソースでも曲が見つからず別名を探すとき、Last.fmとの照合で未知のアーティストに出会ったとき。MusicBrainz ID:ランキングに入ったアーティストの国と関連リンクを調べるとき |
| アートワークと待機画面 | iTunes Search。アートワークは、もともと置かれている場所からもダウンロードします:プレーヤー自身の画像サーバ(Spotify、KKBOX、Amazon Music、YouTube Music、LX Musicのアートワークの元になっているKuwoとMiguのサーバ)、または曲を見つけた歌詞ソース | アーティストと曲名。画像をダウンロードするときは、そのURLだけを送信します |
| 曲・アルバムの解説、アーティストの紹介 | まずApple Musicの公開アルバムページとアーティストページ(Appleアカウント不要)。そこに情報がない場合は、Soda Music(Soda Musicで再生した曲、表示言語が中国語のときのみ)、NetEase Cloud Music(表示言語が中国語のときのみ)、Kuwo(LX MusicがKuwoから再生した曲、表示言語が中国語のときのみ)、Kugou(Kugouで再生した曲。紹介文は表示言語が中国語のときのみ)、YouTube Musicが表示するWikipediaの記事、Last.fm。曲の解説はQQ Music(表示言語が中国語のときのみ)またはLast.fmから取得します | 曲、アルバム、アーティストのIDまたは名前 |
| 録音のオリジナルの曲名 | Apple Musicの公開カタログ(Appleアカウント不要)とDeezer。録音のISRCコードで検索します | ISRCコード、またはアーティストと曲名 |
| ランキングのSpotifyリンク | MusicBrainzとSpotifyの公開埋め込みページ。最大で6時間に1回 | MusicBrainz IDとSpotifyのアルバムID |
| QQ Musicで曲とオーディオブックなどの音声番組を見分ける | QQ Music。QQ Musicで再生しているとき、曲ごとに1回 | 曲のQQ Music ID |
| Soda Musicのアルバム収録曲リスト | Soda Musicの公開アルバムページ。Soda Musicで再生しているときのみ | アルバムID |
| YouTube Musicのミュージックビデオに歌詞を合わせる | SponsorBlock | 動画IDのSHA-256ハッシュの先頭4文字。これだけではどの動画かは分かりません |
| Musixmatchのアドレス解決 | Cloudflare(1.1.1.1)とGoogle(8.8.8.8)、DNS over HTTPSで | ドメイン名 |
| 匿名の使用状況データ(デフォルトでオン。設定 › 情報 › 診断とデータでオフにできます) | 開発者自身のサーバ、telemetry.yudaotor.me(Cloudflare Worker)。1日に最大1回 | ランダムなインストールID、バージョン、チップ、言語、オンになっている機能、再生に使ったプレーヤー、アプリが応答しなくなった回数、クラッシュの概要。曲名、アーティスト、アルバム、アカウントは含みません |
| アニメーションアートワーク | Apple Musicにそのアルバムの動くアートワークがないときは、QQ Music、次にゲストとして匿名でNetEase Cloud Music。動画は、歌詞ウインドウを開いている間、それらの動画サーバからダウンロードされます | アルバム、曲、動画のID。アカウントなし |
| 曲のKugouページの検索 | KugouのWeb検索。Kugouで再生している間、1曲につき1回 | アーティストとタイトル |
| アップデートの確認 | GitHub Releases上のアップデートフィード。システム情報は送信しません。ベータ版のアップデートをオンにすると、GitHub APIのリリース一覧も確認します(最大で1時間に1回) | あなたに関する情報なし |
| 「情報」のスター数 | GitHub API。最大で6時間に1回 | あなたに関する情報なし |
機能をオンにした場合のみ
以下は、設定するまでオフのままです。
| 目的 | サービス | 送信される内容 |
|---|---|---|
| Scrobble | Last.fmとListenBrainzのうち、接続したもの | 再生した曲(あなたのアカウントの認証情報付き) |
| オンライン翻訳での補完(デフォルトはオフ。Appleのデバイス上での翻訳が使えない場合のみ) | まずGoogleのWeb翻訳、翻訳しきれなかった部分はMyMemory | 歌詞の本文を分割して送信。MyMemoryへのリクエストには、あなたのものではない、ランダムに作ったメールアドレスが付きます |
| リスニングまとめ(毎日、毎週、毎月、年間) | 設定した送信先:Bark、ntfy、DingTalk、WeCom、Discord、Feishu、ServerChan、Telegram、Slack、または入力したWebhookのURL | まとめの本文 |
| 共有できる「再生中」ページ | 自分でデプロイしたリレー。ページのトップ10アーティストでは、Deezerにアーティストの画像を問い合わせます | 現在再生中の曲、アーティスト名 |
| 歌詞ウインドウの背景にSpotify Canvasを使用(デフォルトはオフ) | Spotifyの動画サーバ(canvaz.scdn.co)。Mac上でSpotifyが保持しているキャッシュを読み取るだけで、Spotifyには何も問い合わせません | 動画のアドレスのみ |
| 再生中の曲をDiscordに表示(デフォルトはオフ) | Mac上のDiscordアプリ(ローカル接続経由)。それをDiscordがプロフィールに表示します | 曲名、アーティスト、アルバム、アートワークのURL、プレーヤー、再生位置。オンにした場合は、歌っている行とボタンのリンクも |
| Web歌詞とOBS出力(デフォルトはオフ) | LyrimuseがこのMac上で提供するページ(ポート3939と3940)。「ローカルネットワークからのアクセスを許可」をオンにするまでは、このMacでしか開けません。「リモートコントロールを許可」をオンにすると、ページから再生も操作できます | 自ら外部に送信するものはありません。リンクからページを開いたデバイスには、現在の歌詞、アートワーク、再生位置が表示されます |
| LX MusicのOpen API(LX Music側でオンにした場合) | LX Music。このMac上のLX Music自身のポート経由 | 再生コマンド。Macの外には出ません |
| 問題の報告 | ブラウザで開くGitHub。フォームを送信した場合のみ | アプリのバージョン、macOSのバージョン、プレーヤー。歌詞の報告では曲と歌詞ソースも。送信前にすべて確認・編集できます |
これらのサービスにはそれぞれ独自のプライバシーポリシーとログの扱いがあり、開発者はそれを管理できません。
5 外部リクエストのログ
アプリが行うネットワークリクエストはすべて、Mac上のログに書き込まれます。記録するのはサービス、操作、ホスト名、HTTPステータス、所要時間で、完全なURL、パラメータ、本文、認証情報は一切記録しません。
ログは「コンソール」アプリで確認できるほか、設定から書き出す診断情報に含めることもできます。書き出しは常に手動で行うもので、ファイルは保存した場所にだけ置かれます。
6 アプリが求める権限
- オートメーション:Apple Music、Spotify、Kaset、VOXを選んだときに使用し、現在の曲と再生位置を読み取り、再生操作を送ります。ブラウザで聴いていて、Webプレーヤーの正確な再生位置をオンにした場合は、そのブラウザに対するオートメーションも求め、ページ上のプレーヤーの実際の再生位置を読み取ります。
- アクセシビリティ(任意):QQ Music、NetEase Cloud Music、Kugou Music、Soda Music、Amazon Musicではシャッフル、リピート、お気に入りボタンに、reAMPとfoobar2000ではシャッフル、リピート、音量に、Pine Playerではリピートと音量に使い、操作したときにプレーヤー自身のメニュー項目、ボタン、スライダを押します。ほかのアプリが「再生中」を占有しているときは、QQ Music、NetEase Cloud Music、Kugou、Soda Music、reAMP、Pine Player、foobar2000に再生、一時停止、スキップを送るのにも使います。Amazon Musicでは再生位置を正確に保つためにも使い、Pine Playerではタイミングを正確にするためにプログレスバーを、次の曲を準備するためにプレイリストを読み取ります。ブラウザのYouTube Musicでは自動スキップがオンのときに広告の「スキップ」を押します。
- フルディスクアクセス(任意):QQ Music、NetEase Cloud Music、Kugouは再生キューとダウンロードした歌詞を、Soda MusicとVOXは再生キューを、保護されたフォルダに保存しています。アクセスを許可すると、Lyrimuseはこれから再生される曲の歌詞を事前に用意し、これらのアプリがすでに持っている歌詞を使えます。許可しなければ、それらの処理が省かれるだけです。
ほかのプレーヤーはシステムの「再生中」情報から読み取るため、権限は不要です。これらの権限は、再生中の曲を追うこと以外には使いません。
7 このWebサイト
これらのページはGitHub Pages上の静的ファイルで、Cookie、アナリティクス、トラッカーは一切ありません。保存するのは選んだ言語だけで、あなたのブラウザのローカルストレージに置かれます。ダウンロードメニューを開くと、ページは最新のバージョン番号をGitHub APIに問い合わせます。ホストであるGitHubは、ほかのWebサーバと同様にリクエストを記録します。詳しくはGitHubのプライバシーに関する声明をご覧ください。
8 子ども
Lyrimuseは子どもを対象としたものではなく、年齢を問わず、誰からも個人データを収集しません。
9 変更
アプリのデータの扱いが変わった場合は、このページも合わせて更新し、上部の日付を改めます。変更履歴はリポジトリで公開されています。
10 お問い合わせ
ご質問や訂正は、GitHubでissueを作成してください。