Back to Lado

Privacy & limits

Version 0.1 · personal-use prototype · November 2, 2026.

What this app does

Lado displays original lyrics with line-by-line English translations. It reads Spotify playback metadata after explicit authorization, or plays a user-selected YouTube video in a visible official embed. It does not download music or bypass a music subscription, advertising, or DRM.

What leaves your browser

Spotify receives its own OAuth login and playback requests. LRCLIB receives song title, artist, album, and duration to find lyrics. YouTube receives embedded-player requests when you choose YouTube mode. Hugging Face and jsDelivr receive model and library downloads when you enable local translation. Your static hosting provider sees ordinary page requests. These providers have their own privacy policies and may receive your IP address.

Spanish text is processed locally for translation. The app does not send source lyrics to a translation server. Imported text and English translations stay in the current app session. There is no analytics code or Lado server.

Storage and disconnect

The public Spotify Client ID is saved in local storage. OAuth verifier, state, access token, and refresh token live in session storage. They may disappear when the browsing session closes; reconnecting is then required. Lyrics and translations are kept in memory, not published. Browser caches may contain downloaded translation model files and the application shell. Settings includes Disconnect, Stop translator, and Clear Lado data. Revoke Spotify access through Spotify account app management to also revoke permission server-side. Clearing app data cannot remove every third-party browser cookie.

What is not promised

No universal song coverage, perfect slang translation, sample-accurate sync, background iOS execution, or automatic tracking of the separate YouTube Music app. Plain lyrics have no invented timestamps. A video and its album recording can differ. The manual timer does not observe another app. Spotify polling can lag behind a skip or seek, and pauses when Lado is hidden.

Model and runtime

The optional browser translator uses Transformers.js 3.7.2 and Xenova/opus-mt-es-en, revision eadfd7c, with quantized ONNX models. The model weights total roughly 113 MB, with additional runtime and tokenizer downloads. Downloaded models can be evicted by iOS. A desktop browser test does not establish physical-iPhone compatibility, speed, or memory reliability. Machine translation can get dialect, innuendo, slang, and poetic meaning wrong.

Rights and platform review

LRCLIB's availability is not a blanket license for copyrighted lyrics or translations. Use material you have rights to access and use. Source-code licensing does not license third-party lyrics. Spotify's developer terms include restrictions on audio/visual synchronization and cross-service integrations; this prototype has not received Spotify approval or a legal determination that this particular use is permitted. Do not treat it as cleared for public distribution. An embed may be blocked by its owner. Nothing here claims endorsement by Spotify, YouTube, Google, Apple, or LRCLIB.

Deployment

This is a static project, not an App Store app. A hosting deployment and a Spotify developer Client ID are separate setup steps. The downloaded project alone is not a hosted or installed app. The original interface demo contains invented example text and a simulated timer, with no audio and no live music connection.