개인정보 처리방침
요약: Lyrimuse에는 계정 시스템과 광고가 없습니다. 하루에 한 번 익명 사용 데이터를 보내며, 여기에는 노래 제목, 아티스트, 계정이 포함되지 않고, 설정 › 정보 › 진단 및 데이터에서 끌 수 있습니다. 가사를 찾으려면 재생 중인 노래에 대해 가사 소스에 물어봐야 하므로, 앱은 제3자 서비스에 연결합니다. 이 페이지에는 그 서비스가 모두 나와 있습니다.
1 적용 범위
이 방침은 Lyrimuse macOS 앱, 앱에 함께 들어 있는 가사 엔진, 그리고 이 웹사이트 yudaotor.github.io/lyrimuse에 적용됩니다. Lyrimuse는 개발자 한 명(Yudaotor)이 관리하는 오픈 소스 프로젝트이며, 뒤에 회사는 없습니다.
2 수집하는 정보: 익명 사용 데이터
회원 가입과 사용자 계정이 없습니다. 개발자가 받는 것은 익명 사용 데이터이며, 기본적으로 켜져 있습니다. 앱은 하루에 최대 한 번, Mac에서 만들어진 무작위 설치 ID, Lyrimuse와 macOS 버전, 칩, 인터페이스 언어와 시스템 언어, 켜 둔 기능(표시 화면, 선택한 플레이어, 사용 중인 가사 소스 수, 번역과 발음 표기 스위치, Last.fm 같은 계정의 연결 여부, 신뢰하도록 설정한 서드파티 플레이어와 브라우저, 페어링한 웹 플레이어), 이전에 음악을 재생한 플레이어, 앱이 멈춘 횟수를 보냅니다. Lyrimuse나 가사 엔진이 충돌하면 충돌 요약도 보냅니다. 예외의 종류와 스택에 있는 함수 이름이며, 파일 경로는 제거됩니다.
노래 제목, 아티스트, 앨범, 파일 경로, 계정 이름, 자격 증명은 절대 보내지 않습니다. 데이터는 개발자가 직접 운영하는 서버(telemetry.yudaotor.me, Cloudflare Worker)로 전송되며, 이 서버는 IP 주소를 저장하지 않고 Cloudflare가 IP로 파악한 국가 또는 지역만 보관합니다. 설정 › 정보 › 진단 및 데이터에서 익명 사용 데이터 보내기를 끄면(처음 실행할 때의 환영 화면에도 같은 스위치가 있습니다) 아무것도 전송되지 않습니다.
소스 코드가 공개되어 있으므로, 이 내용은 믿어 달라는 말이 아니라 직접 확인할 수 있는 사실입니다.
3 Mac에 남는 정보
앱이 기억하는 모든 정보는 사용자의 Mac에 저장되며, 주로 ~/Library/Application Support/me.yudaotor.lyrimuse 아래에 있습니다. 캐시는 ~/Library/Caches, 로그는 ~/Library/Logs/Lyrimuse, 계정 자격 증명은 로그인 키체인에 저장됩니다.
- 설정
- 가사 캐시(한 번 재생한 노래는 오프라인에서도 가사 표시)
- 로컬 재생 기록(차트와 ‘오늘의 추억’은 이 기록으로 만들어짐)
- 직접 연결하기로 한 서비스의 자격 증명(Last.fm 세션 키, ListenBrainz 토큰 등)
- 아래에서 설명하는 외부 요청 로그
이 중 어느 것도 업로드되지 않습니다. 해당 폴더를 삭제하면 사라지며, 함께 제공되는 uninstall.sh --purge는 키체인 항목과 함께 이 폴더도 삭제합니다.
4 앱이 연결하는 서버
표에 적힌 계정 자격 증명과 사용 데이터의 무작위 설치 ID를 제외하면, 이 요청에는 사용자나 사용자의 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 ID: 차트에 있는 아티스트의 국가와 링크를 찾을 때 |
| 아트워크와 대기 화면 | iTunes Search. 아트워크는 원래 있는 곳에서도 다운로드합니다. 플레이어 자체 이미지 서버(Spotify, KKBOX, Amazon Music, YouTube Music, 그리고 LX Music 아트워크의 출처인 Kuwo, Migu 서버) 또는 노래를 찾은 가사 소스입니다 | 아티스트와 제목. 이미지를 다운로드할 때는 이미지 주소만 보냅니다 |
| 노래, 앨범, 아티스트 소개 | 먼저 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시간에 한 번 | MusicBrainz ID와 Spotify 앨범 ID |
| QQ Music에서 노래와 오디오북 등 음성 프로그램 구분 | QQ Music. QQ Music으로 재생할 때 노래당 한 번 | 노래의 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), 하루에 최대 한 번 | 무작위 설치 ID, 버전, 칩, 언어, 켜 둔 기능, 재생에 쓰인 플레이어, 앱이 멈춘 횟수, 충돌 요약. 노래 제목, 아티스트, 앨범, 계정은 포함되지 않음 |
| 움직이는 앨범 아트워크 | Apple Music에 해당 앨범의 움직이는 아트워크가 없을 때 QQ Music, 그다음 익명 게스트로 NetEase Cloud Music. 가사 윈도우가 열려 있는 동안 해당 서비스의 동영상 서버에서 영상을 내려받습니다 | 앨범, 노래 또는 동영상 ID. 계정 정보 없음 |
| 노래의 Kugou 페이지 찾기 | Kugou의 웹 검색, Kugou에서 재생하는 동안 노래당 한 번 | 아티스트와 제목 |
| 업데이트 확인 | GitHub Releases의 업데이트 피드. 시스템 정보는 보내지 않습니다. 베타 업데이트를 켜면 GitHub API의 릴리스 목록도 최대 1시간에 한 번 조회합니다 | 사용자에 관한 정보 없음 |
| ‘정보’의 Star 수 | GitHub API, 최대 6시간에 한 번 | 사용자에 관한 정보 없음 |
직접 켰을 때만
다음 기능은 직접 설정하기 전까지 꺼져 있습니다.
| 용도 | 서비스 | 받는 정보 |
|---|---|---|
| 스크로블 | Last.fm, ListenBrainz 중 연결한 서비스 | 재생한 음악과 계정 자격 증명 |
| 온라인 대체 번역(기본적으로 꺼져 있으며, Apple 기기 내 번역으로 번역할 수 없을 때만) | 먼저 Google 웹 번역, 남은 부분은 MyMemory | 가사 텍스트를 나누어 보냅니다. MyMemory로 보내는 요청에는 사용자의 것이 아닌, 무작위로 만든 이메일 주소가 포함됩니다 |
| 청취 요약(일간, 주간, 월간, 연간) | 직접 설정한 알림 채널: Bark, ntfy, DingTalk, WeCom, Discord, Feishu, ServerChan, Telegram, Slack 또는 직접 입력한 웹훅 주소 | 요약 텍스트 |
| 공유할 수 있는 ‘지금 재생 중’ 페이지 | 직접 배포한 동기화 서버. 이 페이지의 Top 10 아티스트 화면은 Deezer에 아티스트 사진을 요청합니다 | 지금 재생 중인 정보, 아티스트 이름 |
| Spotify Canvas를 가사 윈도우 배경으로 사용(기본적으로 꺼짐) | Spotify의 동영상 서버(canvaz.scdn.co). Mac에 Spotify가 보관한 캐시만 읽으며, Spotify에 아무것도 요청하지 않습니다 | 동영상 주소만 |
| Discord에 재생 중인 음악 표시(기본적으로 꺼짐) | Mac의 Discord 앱(로컬 연결). 이후 Discord가 프로필에 표시합니다 | 노래 제목, 아티스트, 앨범, 아트워크 주소, 플레이어, 재생 위치. 해당 옵션을 켜면 지금 부르는 가사 줄과 버튼 링크도 포함 |
| 웹 가사 및 OBS 출력(기본적으로 꺼짐) | Lyrimuse가 이 Mac에서 제공하는 페이지(포트 3939, 3940). ‘로컬 네트워크 접근 허용’을 켜기 전에는 이 Mac에서만 열 수 있으며, ‘원격 제어 허용’을 켜면 페이지에서 재생도 제어할 수 있습니다 | 스스로 어디에도 보내지 않습니다. 링크로 페이지를 연 기기에서는 현재 가사, 아트워크, 재생 위치를 볼 수 있습니다 |
| LX Music Open API(LX Music에서 켠 경우) | LX Music. 이 Mac에 있는 LX Music 자체 포트를 통해 연결 | 재생 명령. Mac 밖으로 나가는 정보는 없습니다 |
| 문제 신고 | 브라우저에서 여는 GitHub. 양식을 제출할 때만 전송 | 앱 버전, macOS 버전, 플레이어. 가사 신고에는 노래와 가사 소스도 포함됩니다. 제출하기 전에 모든 내용을 확인하고 수정할 수 있습니다 |
각 서비스에는 자체 개인정보 처리방침과 로그 정책이 있으며, 이는 개발자가 관리할 수 없습니다.
5 외부 요청 로그
앱이 보내는 모든 네트워크 요청은 Mac의 로그에 기록됩니다. 로그에는 서비스, 작업, 호스트 이름, HTTP 상태, 걸린 시간이 기록되며, 전체 주소, 매개변수, 본문, 자격 증명은 절대 기록되지 않습니다.
이 로그는 콘솔 앱에서 보거나, 설정에서 진단 정보를 내보낼 때 포함할 수 있습니다. 내보내기는 항상 사용자가 직접 해야 하며, 파일은 사용자가 저장한 위치에 저장됩니다.
6 앱이 요청하는 권한
- 자동화: Apple Music, Spotify, Kaset, VOX를 선택했을 때 현재 트랙과 재생 위치를 읽고 재생 제어 명령을 보냅니다. 브라우저에서 음악을 듣고 웹 플레이어의 정확한 재생 위치 옵션을 켜면, 페이지에 있는 플레이어의 실제 재생 위치를 읽기 위해 해당 브라우저에 대한 자동화 권한도 요청합니다.
- 손쉬운 사용(선택 사항): 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 이 웹사이트
이 페이지들은 GitHub Pages에 올라간 정적 파일이며, 쿠키, 분석 도구, 추적기가 없습니다. 저장하는 정보는 사용자가 선택한 언어 하나뿐이며, 사용자 브라우저의 로컬 저장소에 저장됩니다. 다운로드 메뉴를 열면 페이지가 GitHub API에 최신 버전 번호를 요청합니다. 호스팅을 맡은 GitHub는 여느 웹 서버처럼 요청을 기록합니다. 자세한 내용은 GitHub 개인정보 처리방침을 참고하십시오.
8 아동
Lyrimuse는 아동을 대상으로 하지 않으며, 나이와 관계없이 누구의 개인 데이터도 수집하지 않습니다.
9 변경 사항
앱의 데이터 처리 방식이 바뀌면 이 페이지도 함께 바뀌고 상단의 날짜가 업데이트됩니다. 이 페이지의 변경 이력은 저장소에 공개되어 있습니다.
10 문의
질문이나 정정 요청: GitHub에 이슈 등록.