Back to Home

Privacy Policy

Effective Date: August 2026

1. Absolute Local-First Architecture

Sakayori Music is fundamentally designed as a decentralized, local-first application. We do not operate a central database containing user accounts. We do not utilize analytics tracking platforms (such as Google Analytics, Firebase Crashlytics, Mixpanel, or Amplitude). Every action you take within the app—from skipping a song to creating a playlist—happens strictly on your local device.

There is no "shadow profile" being built, and no background telemetry is sent to any Sakayori Dev server. What happens on your device stays entirely within the sandbox of your device, unless you explicitly invoke a feature that requires a third-party connection.

2. Exact Mechanics of Third-Party Connections

Because Sakayori Music acts as an aggregator of multiple APIs, it must connect to external servers to fetch audio streams, lyrics, and metadata. Below is the exhaustive list of every connection the app makes, what data is sent, and why:

A. YouTube Music API & Zemer Cipher

To stream audio, the app contacts Google/YouTube servers. It sends the video ID to retrieve stream metadata and decrypts signatures locally using `zemer-cipher`. No personal identifier is sent unless you explicitly log in. If you do log in via Google OAuth, the app stores the token strictly in your Android Keystore. The app only reads your playlists and history; it never writes or deletes data without your explicit command.

B. Discord Rich Presence (RPC)

When you enable Discord RPC, the app uses the Discord IPC to update your status. It strictly requests the sdk.social_layer_presence scope.

What is sent: The current song title, artist, album art URL, and playback timestamps.
What is NOT sent: We cannot read your Discord messages, view your friends, access your email, or modify your profile. The connection is direct between your device and Discord's Gateway.

C. Sakayori Server (Listen Together)

If you host or join a "Listen Together" session, the app connects via WebSockets to our Sakayori Server instance (`wss://listen.sakayori.studio/ws`). It transmits your session ID, playback state (play/pause), and current timestamp to synchronize audio with other clients. No personally identifiable information (PII) is required or transmitted.

D. Lyrics Providers (Better Lyrics & LRCLIB)

To fetch synced LRC lyrics, the app sends the song title, artist name, and duration to LRCLIB or Better Lyrics API. Your IP address is visible to these servers during the HTTPS request, but no user accounts or persistent tracking identifiers are attached to these queries.

E. MusicRecognizer (Shazam API)

When using the audio recognition feature, a brief acoustic fingerprint of the audio is generated locally and sent to Apple's Shazam servers. The raw audio recording is never saved, uploaded, or analyzed for anything other than song identification.

F. Kugou & Last.fm Integrations

If enabled, queries for high-resolution album art or alternate audio streams may hit Kugou's APIs. Last.fm integration requires standard OAuth to scrobble your listening history. You are subject to Tencent and CBS Interactive privacy policies when invoking these specific modules.

3. Local Storage, Caching, & Keystore

To provide a seamless offline experience and reduce bandwidth consumption, Sakayori Music aggressively caches data:

  • Audio Files: Downloaded `.opus` or `.m4a` streams are stored in the Android app-specific sandbox `/Android/data/com.sakayori.music/`. They are not visible to your gallery or other apps unless manually exported.
  • Lyrics & Artwork: High-res thumbnails and `.lrc` files are cached locally in an SQLite database.
  • Authentication Tokens: OAuth tokens for YouTube or Discord are encrypted and stored inside the hardware-backed Android Keystore. They cannot be extracted by malicious apps, nor are they ever backed up to cloud services.

4. Open Source Verification & Auditability

Trust is not given; it is earned through transparency. Because Sakayori Music is 100% Free and Open Source Software (FOSS), you do not have to blindly trust this privacy policy.

Every single network request, API call, and local storage operation can be independently audited by reviewing the source code at GitHub. We welcome security researchers to compile the application from source to verify that the binaries provided match the public code exactly, with zero hidden telemetry or obfuscated tracking payloads.

5. Contact Information

If you have any questions, concerns, or require clarification regarding this privacy policy or how your data is handled locally, please contact our privacy and legal team: