Политика конфиденциальности
Коротко: в Lyrimuse нет аккаунтов и рекламы. Раз в день приложение отправляет анонимные данные об использовании, в которых нет названий песен, артистов и аккаунтов, и это можно отключить в разделе «Настройки › О программе › Диагностика и данные». Чтобы найти текст, нужно спросить у источников текстов о песне, которая сейчас играет, поэтому приложение обращается к сторонним сервисам. Здесь перечислены все они.
1 На что распространяется
Эта политика распространяется на приложение Lyrimuse для macOS, встроенный в него движок текстов и этот сайт по адресу yudaotor.github.io/lyrimuse. Lyrimuse — проект с открытым кодом, который ведет один разработчик (Yudaotor). Никакой компании за ним нет.
2 Что мы собираем: анонимные данные об использовании
Регистрации и аккаунтов нет. Разработчик получает анонимные данные об использовании; по умолчанию их отправка включена. Не чаще раза в день приложение отправляет случайный идентификатор установки, созданный на вашем Mac, версии Lyrimuse и macOS, чип, языки интерфейса и системы, сведения о том, какие функции включены (места показа текста, выбранные плееры, сколько источников текстов включено, переключатели перевода и произношения, подключены ли аккаунты вроде Last.fm, каким сторонним плеерам и браузерам вы доверяете, какие веб-плееры вы подключили), какие плееры воспроизводили музыку в предыдущие дни и сколько раз приложение зависало. Если 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 К каким серверам обращается приложение
Кроме учетных данных аккаунтов, указанных в таблицах, и случайного идентификатора установки в данных об использовании, ни один из этих запросов не содержит ничего, что идентифицирует вас или ваш Mac. Каждый сервис видит сам запрос и, как любой сайт, ваш 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, чтобы узнать страну и ссылки артистов в чартах |
| Обложки и экран ожидания | iTunes Search. Обложки также загружаются оттуда, где они уже лежат: с собственного сервера изображений плеера (Spotify, KKBOX, Amazon Music, YouTube Music, а также серверы Kuwo и Migu, откуда берутся обложки LX Music) или из источника текстов, который нашел песню | Артист и название. При загрузке изображения отправляется только его адрес |
| Сведения о песне, альбоме и артисте | Сначала открытые страницы альбомов и артистов Apple Music, Аккаунт Apple не нужен. Если там ничего нет: Soda Music (песни, воспроизводимые в нем, только с китайским интерфейсом), NetEase Cloud Music (только с китайским интерфейсом), Kuwo (песни, которые LX Music воспроизводит из Kuwo, только с китайским интерфейсом), Kugou (песни, воспроизводимые в нем; описания только с китайским интерфейсом), статьи Википедии, которые показывает YouTube Music, и Last.fm. Сведения о песнях берутся из QQ Music (только с китайским интерфейсом) или Last.fm | Идентификаторы или названия песен, альбомов или артистов |
| Оригинальное название записи | Открытый каталог Apple Music (Аккаунт Apple не нужен) и Deezer, поиск по коду ISRC записи | Код ISRC либо артист и название |
| Ссылки Spotify в чартах | MusicBrainz и открытые embed-страницы Spotify, не чаще одного цикла запросов в 6 часов | Идентификаторы MusicBrainz и идентификаторы альбомов Spotify |
| Отличие песен от аудиокниг и других речевых программ в QQ Music | QQ Music, один раз на песню, пока играет QQ Music | Идентификатор песни в QQ Music |
| Отличие песен от выпусков подкастов в Kaset и Pear Desktop | YouTube Music, один раз для каждого нового видео, которое воспроизводит Kaset или Pear Desktop | Идентификатор видео |
| Управление воспроизведением Plexamp | Plexamp, через его собственный порт на этом Mac, пока вы слушаете в Plexamp | Команды воспроизведения. Ничего не покидает ваш Mac |
| Списки треков в альбомах Soda Music | Открытые страницы альбомов Soda Music, пока вы слушаете в Soda Music | Идентификатор альбома |
| Синхронизация текста с клипами в YouTube Music | SponsorBlock | Первые 4 символа хеша SHA-256 от идентификатора видео, по которым нельзя определить, что это за видео |
| Поиск адреса Musixmatch | Cloudflare (1.1.1.1) и Google (8.8.8.8) по протоколу DNS over HTTPS | Доменное имя |
| Анонимные данные об использовании (включено по умолчанию; отключается в разделе «Настройки › О программе › Диагностика и данные») | Собственный сервер разработчика telemetry.yudaotor.me (Cloudflare Worker), не чаще раза в день | Случайный идентификатор установки, версии, чип, языки, включенные функции, какие плееры воспроизводили музыку, как часто приложение зависало, и сводки о сбоях. Без названий песен, артистов, альбомов и аккаунтов |
| Анимированные обложки альбомов | QQ Music, затем NetEase Cloud Music в роли анонимного гостя, если у Apple Music нет анимированной обложки альбома. Видео загружается с их видеосерверов, пока открыто окно текста | Идентификаторы альбома, песни или видео. Без аккаунта |
| Поиск страницы песни в Kugou | Веб-поиск Kugou, один раз на песню, пока играет Kugou | Артист и название |
| Проверка обновлений | Лента обновлений на GitHub Releases, без сведений о системе. Если включены бета-обновления, то и список выпусков из GitHub API, не чаще раза в час | Ничего о вас |
| Число звезд в разделе «О программе» | GitHub API, не чаще одного раза в 6 часов | Ничего о вас |
Только после того, как вы что-то включите
Эти функции выключены, пока вы их не настроите:
| Назначение | Сервис | Что получает |
|---|---|---|
| Скробблинг | Last.fm и ListenBrainz, смотря что вы подключите | Что вы слушаете, с учетными данными вашего аккаунта |
| Резервный онлайн-перевод (выключен по умолчанию и используется, только когда перевод Apple на устройстве не справляется) | Сначала веб-переводчик Google, затем MyMemory для оставшегося | Текст песни частями. Запросы к MyMemory содержат случайно сгенерированный адрес электронной почты, а не ваш |
| Итоги прослушивания (за день, неделю, месяц, год) | Настроенные вами каналы: Bark, ntfy, DingTalk, WeCom, Discord, Feishu, ServerChan, Telegram, Slack или введенный вами адрес вебхука | Текст итогов |
| Публичная страница с тем, что сейчас играет | Ретранслятор, который вы разворачиваете сами. Его страница с топ-10 артистов запрашивает у Deezer фотографии артистов | Что играет сейчас; имена артистов |
| Spotify Canvas как фон окна текста (выключено по умолчанию) | Видеосервер Spotify (canvaz.scdn.co). Приложение только читает кэш, который Spotify хранит на вашем Mac, и ничего не запрашивает у Spotify | Только адрес видео |
| Показ того, что вы слушаете, в Discord (выключено по умолчанию) | Приложение Discord на вашем Mac, через его локальное соединение. Затем Discord показывает это в вашем профиле | Название песни, артист, альбом, адрес обложки, плеер и прогресс, а также текущая строка и ваши кнопки-ссылки, если вы их включите |
| Текст в браузере и вывод в OBS (выключено по умолчанию) | Страница, которую Lyrimuse раздает на этом Mac (порты 3939 и 3940). Пока вы не разрешите доступ из локальной сети, открыть ее можно только на этом Mac; если включено «Разрешить удаленное управление», страница также может управлять воспроизведением | Само по себе ничего никуда не отправляется. Устройства, открывшие страницу по ее ссылке, видят текущий текст, обложку и прогресс |
| Open API в LX Music (если вы включили его в LX Music) | LX Music, через его собственный порт на этом Mac | Команды воспроизведения. Ничего не покидает ваш Mac |
| API Server в Pear Desktop (если вы включили его в Pear Desktop) | Pear Desktop, через его собственный порт на этом Mac | Команды воспроизведения и отметки «Нравится»; Pear Desktop сообщает текущую песню и очередь. Ничего не покидает ваш Mac |
| Сообщение о проблеме | GitHub, в вашем браузере, и только если вы отправите форму | Версии приложения и macOS и плеер, а для сообщений о тексте еще песня и источник текста. Перед отправкой вы видите все это и можете изменить |
У каждого из этих сервисов своя политика конфиденциальности и свои журналы, на которые разработчик не влияет.
5 Журнал исходящих запросов
Каждый сетевой запрос приложения записывается в журнал на вашем Mac. В нем фиксируются сервис, операция, имя хоста, HTTP-статус и длительность, но никогда не полный адрес, параметры, тело запроса или учетные данные.
Журнал можно прочитать в приложении «Консоль» или включить в экспорт диагностики из настроек. Экспорт всегда выполняется только вручную, а файл оказывается там, куда вы его сохраните.
6 Какие разрешения запрашивает приложение
- Автоматизация для Apple Music, Spotify, Kaset, VOX, Swinsian и Audirvana, если вы их выбрали: приложение считывает текущий трек и позицию и отправляет команды воспроизведения. Если вы слушаете в браузере и включаете точный прогресс веб-плеера, оно также запрашивает «Автоматизацию» для этого браузера, чтобы считывать реальную позицию плеера на странице.
- Универсальный доступ, по желанию: QQ Music, NetEase Cloud Music, Kugou Music, Soda Music и Amazon Music используют его для кнопок перемешивания, повтора и избранного, reAMP, foobar2000 и Audirvana для перемешивания, повтора и громкости, Pine Player для повтора и громкости, а MyGo Music для кнопки избранного; при этом приложение нажимает собственные пункты меню, кнопки или ползунки плеера, когда вы ими пользуетесь. Пока «Исполняется» занято другим приложением, оно также отправляет команды воспроизведения, паузы и перехода в QQ Music, NetEase Cloud Music, Kugou, Soda Music, reAMP, Pine Player, foobar2000 и MyGo Music; для Amazon Music оно также поддерживает точную позицию воспроизведения, а у Pine Player считывает индикатор прогресса, чтобы точно выставить тайминг, и плейлист, чтобы заранее подготовить следующие песни; для YouTube Music в браузере и в Pear Desktop оно нажимает «Пропустить» на рекламе, когда включен автоматический пропуск.
- Доступ к диску, по желанию: QQ Music, NetEase Cloud Music и Kugou хранят очередь воспроизведения и загруженные тексты в защищенной папке, а Soda Music и VOX хранят там очередь воспроизведения. С доступом Lyrimuse заранее готовит тексты для следующих песен и может использовать тексты, которые уже есть в этих приложениях; без него эти шаги просто пропускаются.
Остальные плееры считываются через системные сведения «Исполняется» и не требуют разрешений. Ни одно из этих разрешений не используется ни для чего, кроме отслеживания того, что вы слушаете.
7 Этот сайт
Эти страницы — статические файлы на GitHub Pages, без файлов cookie, аналитики и трекеров. Они сохраняют только выбранный вами язык, и только в локальном хранилище вашего браузера. Когда вы открываете меню загрузки, страница запрашивает у GitHub API номер последней версии. GitHub как хостинг ведет журналы запросов, как любой веб-сервер; см. заявление GitHub о конфиденциальности.
8 Дети
Lyrimuse не предназначено для детей и не собирает персональные данные ни у кого, независимо от возраста.
9 Изменения
Когда меняется то, как приложение обращается с данными, эта страница меняется вместе с ним, а дата вверху обновляется. История ее изменений открыта в репозитории.
10 Контакты
Вопросы и исправления: создайте issue на GitHub.