← Back to home

Privacy policy Draft

Also available in: 繁體中文 · 日本語

This page is a draft that has not been legally reviewed; the final version may differ. Fields marked 【】 are still to be filled in.

Last updated: 2026-10-24

This policy explains how Louis Hsu ("we") collects, uses and protects personal data in the KAREOKIE app (the "App") and its account server.

1. Data we collect

DataSourcePurpose
Google account ID, email address, name, profile picture URLProvided by Google when you sign in (scopes openid, email, profile only)Create and identify your account; show it in the App
Device data: a device ID generated by the App, computer name, OS, App version, first and last useThe AppManage signed-in devices (up to 3 per account); check that your App version is still supported
Plan and payment status (once paid plans exist)Our payment providerUnlock the matching features. We never receive or store your card number
IP address and time of connectionsServer connection logsAbuse prevention (sign-in rate limits), security auditing, troubleshooting
Score records: the song's YouTube ID, title, artist and lyrics language, total and component scores, notes hit, voiced ratio, scoring mode, key shift, seconds sung, song length, App version, time sungUploaded by the App after each songLeaderboards, song play counts, your "My records", detecting implausible scores
Leaderboard settings: display name, anonymous or not, score-ranking opt-out; a "public nickname" you give a memberSet by you in the AppShown on the leaderboards
Time of each entitlement checkThe App, at least hourlyConfirming access (real-time service)

We do not collect: the audio you import, your recordings or microphone audio, local member names (unless you set a public nickname) or the rest of your local history. Audio is processed on your computer and never uploaded to our servers. Crash reports and problem reports, described below, are cleaned of this information.

Shown publicly: the leaderboards show your leaderboard name (or "Anonymous"), public nicknames, scores and dates. You can stay off the score rankings; song play counts are always counted anonymously.

Crash reports and diagnostics

  • Automatic crash reports are optional. They are sent only if you answer "Yes" when the App asks the first time. You can switch them off at any time under *Privacy & diagnostics*; switching off also deletes reports that were not sent yet.
  • A crash report contains: the type of error, the error message and where in the program it happened (stack trace); the versions of the App, Windows, the graphics card and the CPU; the last few things the App did (for example "opened the stage" or "import: separating vocals"); an anonymous install ID (a one-way hash of the App's device ID); and, if you are signed in, your account ID. For a crash of the program itself, the report also includes a *minidump*: a snapshot of the crashed program's memory at the moment of the crash, which can contain fragments of what the App was working on.
  • Before anything is sent, the App removes email addresses, your Windows user name and computer name, the folder names of your user folder, sign-in tokens, YouTube links and IDs, song titles, artists, member names and Chinese, Japanese or Korean text (such as lyrics). Our server repeats this cleaning. Audio is never sent.
  • Report a problem: when you send a report we receive the category and the description you write, the App and Windows versions and, only if you tick the boxes, the App's log files and system information (cleaned in the same way; you can see what will be sent before sending). Your email address is stored only if you type it and allow us to contact you.
  • Export diagnostics saves the same information as a zip file on your computer. Nothing is sent.
  • Where and how long: reports are stored on our account server (Cloudflare); we do not use a third-party crash reporting service. Crash reports are kept for 90 days, minidumps and problem-report attachments for 30 days, and problem reports (the text) for up to 12 months. When you delete your account, your crash and problem reports are unlinked from you and a contact email address is deleted.
  • Purpose: finding and fixing bugs, and checking whether an update made the App more or less stable. Crash reports are based on your consent; problem reports on your request.

2. How we use it

Only to provide sign-in and account features, check your entitlement and App version, manage devices, send service announcements, handle paid plans (later), prevent abuse and keep the service secure, and comply with the law. We do not sell personal data or use it for advertising.

3. Retention and deletion

  • Account data is kept until you delete your account. You can delete your account at any time from the App's Account page: your account, devices, plan records and leaderboard name are deleted from the server and every device is signed out at once; personal identifiers in audit records are removed; your score records are unlinked from you (anonymised), remain only in the anonymous play counts and disappear from the leaderboards.
  • Server logs (including IP addresses) are normally kept for no more than 30 days.
  • Crash reports: 90 days. Minidumps and problem-report attachments: 30 days. Problem reports: up to 12 months. Crash and problem reports do not store your IP address.
  • Payment records may be kept by the payment provider where tax law requires it.

3a. Consent records

When you accept the rights acknowledgement, these Terms or this Privacy Policy, we store a consent record: a random record ID, your account ID, which statement or document you agreed to with its version and language, a SHA-256 fingerprint of the exact text shown, the purpose (first sign-in, statement update, first use of an import source, terms, privacy), the import source where relevant (for example youtube), the App version, a one-way hash of the App's device ID, the country derived from your connection (not the IP address itself) and the time. A copy is kept on your computer (consents.jsonl in the App's data folder) until it has been sent.

  • Why: to show that you gave the acknowledgement before using the features that need it, and to handle rights holders' complaints and disputes (our legitimate interest in defending legal claims).
  • How long: as long as your account exists. When you delete your account, the records are not deleted but pseudonymised: your account ID is replaced by a one-way hash, and the records are deleted 10 years after they were made (the outer limitation period for damage claims). Consent records are never changed after they are made.
  • You can ask us for a copy of your records at any time (contact below).

4. Third-party processors

  • Google: sign-in (Google Privacy Policy: https://policies.google.com/privacy).
  • Cloudflare: hosts the account server and database (data may be processed outside your country).
  • Payment provider (later, e.g. Paddle or Lemon Squeezy): payments, tax and invoices.

5. Security

All connections are encrypted (HTTPS / WSS). Sign-in uses PKCE. Refresh tokens are stored only as hashes on the server and protected with the operating system's encryption on your computer. The App contains no secret keys.

6. Your rights

You may request access to, correction, export or deletion of your personal data, or withdraw consent (deleting your account stops all processing). You can also remove KAREOKIE's access in your Google account settings (https://myaccount.google.com/permissions). Depending on where you live (for example under the GDPR) you may have further rights. Contact: weijin8911@gmail.com.

7. Children

The service is not directed at children under 13. Minors should use it with the consent of a parent or guardian.

8. Changes

We will update the date on this page when the policy changes and announce significant changes in the App.

9. Contact

Louis Hsu · Postal address available on request · weijin8911@gmail.com