Browser Extension Privacy Policy
How the Deeplingo browser extension handles your data. All collection is opt-in and off by default.
At a glance
- All data collection is opt-in and off by default.
- We never collect subtitle text, video URLs, video content, audio, browsing history, or any free-form text you type.
- We never sell or share data with third parties for advertising.
- Toggle anything on or off any time from the extension's Options page.
What the extension always does (no toggle)
- Stores your Deeplingo session token locally so you stay signed in. The token never leaves your browser except when calling Deeplingo's own backend (
api.deeplingo.com). - Caches your saved-vocabulary list locally so the on-video overlay can fade words you already know without a round trip.
- Caches anonymous keys locally: a per-install random ID and your preferences (overlay on/off, font size, auto-pause).
These never leave your browser unless one of the opt-in toggles below is enabled.
What we collect only if you opt in
"Share anonymous usage stats" (default OFF)
A small JSON event is POSTed to a single endpoint when you:
| Event | Properties |
|---|---|
extension_install | none |
extension_update | previous version string |
extension_signin | none |
word_saved | three booleans: had IPA, had example, had note |
dict_miss | length of the queried word (an integer) |
vocab_sync_fail | the trigger reason ("install", "alarm", etc.) |
ad_detected | none (Phase 2+ — Netflix / future) |
Each event also carries:
- A random per-install ID (no link to your Deeplingo account).
- The extension version.
- A timestamp.
We never include the saved word's text, the source URL, the page you're on, the video title, the surrounding caption, your IP-address-as-a-stable-key, or any free-form text.
"Send crash reports" (default OFF)
When the extension throws an uncaught error, we POST a stack trace to Sentry. The payload contains:
- The error type and message.
- The stack trace (file paths inside the extension bundle).
- The surface (
background,content,popup,options). - The extension version.
- A random per-install ID.
We never include subtitle text, video URLs, or DOM contents.
What we never collect
- The text of any subtitle, caption, or word you click.
- The URL of any page you visit.
- Video titles, thumbnails, or metadata.
- Audio, video, or image content.
- Your Deeplingo email or account ID (the random per-install ID is unrelated to your account).
- IP addresses (other than as part of the standard transport, which is not stored as a stable key).
- Cookies set by third parties.
- Anything you type, anywhere.
Where the data goes
- Telemetry: a single endpoint configured at build time (
DL_TELEMETRY_ENDPOINT). For production this is a Deeplingo-operated host; we do not forward to ad networks or analytics middlemen. - Crash reports: Sentry. The DSN is configured at build time (
DL_SENTRY_DSN).
If either env var is empty in a given build, the matching gate is permanently closed regardless of the toggle state.
Retention
- Telemetry: aggregated counts kept indefinitely; the raw per-event JSON is rotated out after 90 days.
- Crash reports: 90 days, then deleted by Sentry's retention policy.
Changing your mind
Open the extension's Options page and toggle the relevant switch off. The change takes effect immediately — the in-memory cache is invalidated on the next chrome.storage.onChanged event.
Contact
Email privacy@deeplingo.com for any data-deletion request. Include your random per-install ID if you have it (Options → Build info), or we can purge by approximate install timestamp on request.
Related
For the Deeplingo platform's general privacy policy (web app, account data, payments), see our main Privacy Policy.