EN Log in Sign up

Privacy Policy — Dual Subtitles for HDrezka — Lingogram

Effective date: June 22, 2026 Last updated: October 7, 2026

This Privacy Policy explains what information the Dual Subtitles for HDrezka — Lingogram browser extension ("the Extension") collects, how it is used, where it is stored, and the choices you have. It applies to the Extension wherever it runs: on HDrezka, on the web pages where it marks your saved words (Section 1b), and on translate.google.com when you import your saved phrases (Section 1h).

This English version at https://lingogram.ai/privacy/rezka/ is the authoritative one.


TL;DR


1. Information We Collect

a. If you do not sign in

The Extension does not collect or store any personal data about you on our servers, and creates no account. Your language and layout preferences, a local "words saved" counter, and the words you save are kept only in your browser (see Section 3). For each saved word that is the word or phrase as you selected it, the subtitle line or paragraph it came from, a coarse label of where you saved it (such as youtube or web), and the time you first saved it. Once you open the My words page, a translation of the word is kept with it (Section 1e). None of this is uploaded to our servers while you have no account, and no account or email is sent to us unless you sign in. A saved word does leave your browser when it is looked up — on the My words page, or when you rest the pointer on it on a web page — as described in Section 1e: the word alone, without its context.

Four things are sent even without an account, none of them tied to your identity unless you choose to add it:

b. If you choose to sign in (optional account)

Signing in enables cross-device sync of your saved vocabulary. When you sign in, we collect and process:

Words kept in your browser. If you saved words before you signed in (Section 1a), or while your session had expired, they are in your browser. When you sign in, and each time the Extension starts while you are signed in, it writes them into your account one by one, oldest first, like any other save: the word and its subtitle line or paragraph, with the same source tag and daily limit as above. After each successful write, that word is removed from your browser. A word that fails to upload stays in your browser and is tried again at the next sign-in, start, or successful save. The translation kept with a word, its site label and the time you first saved it are not uploaded. A word too long for your account to hold is discarded. If your session has expired when you save a word, the word is kept in your browser the same way, and the Extension records in your browser that the session needs renewing, so it can tell you to sign in again.

We do not collect: your browsing history, the videos you watch or the pages you read (beyond the subtitle text you explicitly save, the paragraph around a word you save from the right-click menu, the subtitle lines accompanying a word you look up as described in Section 1e, the site name attached to a feedback message you send, and the single video address included in a diagnostic report you explicitly trigger; the analytics in Section 1c record only a coarse platform label such as rezka, never a video or a URL), IP-based location tracking, advertising identifiers, or cookies for tracking.

Saving from the right-click menu. When you select text on any web page, the Extension adds a "Save to Lingogram" item to your browser's right-click menu. The page is read only when you press that item, and only that one page: the Extension reads the selected text and the paragraph it sits in, saves them as described above, and shows a short confirmation on the page. Saving never sends anything from a page you did not press the item on, and never records the page's address or title. If you are not signed in, the word is kept in your browser, as Section 1a describes, and is uploaded when you sign in. The analytics in Section 1c count such a save under the platform label web. The saved word carries the source tag of the edition whose menu item you pressed. If both editions are installed, only one shows the item: the one you are signed in to, or the YouTube edition when you are signed in to both or to neither. To agree on this, each edition asks the other, inside your browser, whether it is installed and signed in; the answer is a yes or no and carries no other data about you or the page. The two editions also share, inside your browser, the settings described below and in Section 1c, so that both follow the same choice.

Marking your saved words on web pages. On the web pages you open, the Extension marks the words and phrases you have saved, so you notice them wherever they appear. To do this it reads the visible text of each page inside your browser and compares it with the local list of your saved words described in Section 3. The page text, the words found in it, and the address of the page are never sent anywhere — not to us, not to Google, not to anyone — and nothing about them is stored. The one exception is a word you point at: resting the pointer on a marked word opens a card with its translation, and that word, only the word and not the sentence or the page, is sent to look it up as described in Section 1e — to our dictionary service for a single word, and first to Google Translate for a phrase of more than one word. Removing the word from that card, or saving it again, is an ordinary change to your saved words, as described above; saving it again sends the paragraph it is in as its context, as the right-click save does. The marks are drawn by the browser over the text and do not change the page's content. Because they are drawn on the page, the website's own scripts can see which of its words are marked, and through that, some of the words on your list. To limit this, only text that is actually shown on the page is marked, never hidden text. This requires Chrome's permission to run on all websites. The Extension uses that access only for this marking and for reading the paragraph around a selection you save from the right-click menu (above); it does not run on Lingogram's own website. If you have saved no words, nothing is marked. You can switch it off for all websites with "Highlight my words on websites" on the Extension's Settings page, or for one website with "Highlight words on" that website's name in the toolbar popup. The websites you switch off this way are kept as a list of their host names (for example en.wikipedia.org) on your device; the list is never sent to our servers or to anyone else. The Settings page, and the settings page of our website (Section 1f), show it so you can switch a website back on. If both editions are installed, the other edition is given the same switch and list inside your browser, so both follow the same choice, and only the one that shows the menu item marks words.

Your Lingogram account works across our other Lingogram extensions; if you sign in with the same account, your saved vocabulary syncs together.

c. Anonymous usage analytics (on by default, one click to turn off)

The Extension sends anonymous usage events to Google Analytics 4 so we can see how many people install it, where the Extension breaks, and which steps people give up on. This is on by default. To turn it off, click Settings in the toolbar popup. It opens the Extension's settings page on our website (Section 1f); in its Privacy group, uncheck "Share anonymous usage stats". The page passes the change to the Extension inside your browser, and collection stops immediately. If both Lingogram editions are installed, turning it off or on in one does the same in the other, inside your browser, and an edition installed later starts with it off if you had turned it off in the other.

The identifier. Each event carries a random identifier generated on your device the first time the Extension runs, stored in your browser's local extension storage. It is not your email, not your Firebase user ID, and not derived from either. We never send your account identity to Google Analytics, so there is no key that could join your analytics events to your account — the separation is structural, not just a promise. Clearing the Extension's storage or reinstalling produces a new, unrelated identifier.

The events we send (23 in total):

The fields attached to those events, and nothing else:

What is never sent: the video you are watching (no title, no URL, no ID), the words you save, look up, or remove, subtitle text, page content, feedback text, your email address, your Firebase user ID, and your browsing history. This is enforced by a deny-list in the code, not by convention: a parameter named like any of those is dropped before the event is built.

Google's role. Google Analytics processes these events for us as our service provider; see Google's Privacy Policy at https://policies.google.com/privacy. On our Analytics property, Google Signals is switched off, so Google does not attach an age, gender, interest category, or advertising audience to these events and does not link them across your devices. Granular location collection is off: events are resolved to country and region only, never to a city. Google collects country and region for every property regardless of this setting; what we switched off is the finer-grained collection on top of it. Every payload is sent with non_personalized_ads: true. Google Analytics is not used to build a profile of you or to target advertising.

d. Service-status messages (no data about you is sent)

When a video platform changes something and subtitles stop working, the Extension can show a short message in its sidebar telling you the problem is known and being fixed, without waiting for a Chrome Web Store update. To do this it periodically downloads a small list of current messages from our Firebase database.

This is a download, not an upload. The request contains no account data, no identifier, no video address, and no information about you or what you are watching — it is the same anonymous request for the same public list that every installation makes, whether or not you are signed in. Which message applies to your installation (by Extension version, edition, platform, and interface language) is decided on your device, from the list already downloaded; none of those details are sent to us.

Because it is an anonymous request to Google's servers, Google receives your IP address as it does for any web request; we neither receive nor store it. The downloaded list, and the identifier of any message you dismiss with its × button, are kept on your device only (see Section 3).

The only thing we learn is described in Section 1c: if the download fails, an anonymous notification_fetch_failed event tells us that our messages are unreachable, so we can fix it. It is sent only on failure, only if analytics is on, and carries only the reason for the failure.

e. Word lookup (the dictionary service)

When you hover or click a word in the subtitles to see what it means, or rest the pointer on a word marked on a web page (Section 1b), or open the My words page (below), the Extension asks our dictionary service for that meaning. The request contains:

This happens whether or not you are signed in, and the request carries no account identifier, no email, no analytics identifier, and nothing that ties one lookup to another or to you. We use it to answer that lookup, and we do not build a history of your lookups against any identity.

How our dictionary service answers. The service runs on Google Cloud. It first looks the word up in Wiktionary data published by kaikki.org, sending only the word, from our server. When that has no entry (typically a phrase, a rare word or a name), or when the dictionary is unavailable, the service asks an AI model run by OpenAI through the OpenAI API, sending the word or phrase, your language and the subtitle lines that came with it. Neither receives your IP address, an account identifier or anything else about you; OpenAI processes the request as our service provider under its API data-usage terms. The service stores each answer in its database, keyed by the word, the language and a one-way hash of the subtitle lines, so the same question is not asked again, and its logs record the word asked (not the subtitle lines) to monitor answer quality (Section 6).

It is a feature rather than measurement, so the "Share anonymous usage stats" switch does not stop it — that switch governs Section 1c. The way to send no lookups is not to look words up: the transcript, dual subtitles, listening challenge and local word saving all work without it. If the Extension was built without a dictionary endpoint configured, the feature is off entirely.

Phrases you select go to Google Translate first. When you drag across more than one word, the Extension first asks Google's public web translator (translate.googleapis.com, then translate.google.com) for that phrase, directly from your browser. That request contains only the selected phrase and the language you want it in. It does not contain the subtitle line, and it carries no account identifier, no email, no analytics identifier and no cookies. Like any web request, it reaches Google from your IP address, and Google processes it under its own Privacy Policy (https://policies.google.com/privacy). The dictionary service is asked about the phrase, as described above, only when Google gives no answer. The same applies when you rest the pointer on a saved phrase of more than one word marked on a web page (Section 1b): only that phrase and your language go to Google Translate. Hovering or clicking a single word never goes to Google Translate.

Answers are cached briefly on your device so the same word is not asked twice.

The My words page. This page of the Extension lists the words kept in your browser (Section 3). For each word that has no stored translation, it makes the lookup above, once per visit to the page, with only the word and your native language, never the sentence the word came from. A phrase of more than one word goes to Google Translate first, as described above. The answer, up to three translations, is stored with the word in your browser. It is not uploaded to your account.

f. The welcome and farewell pages

When you install the Extension, it opens a welcome page on our website. If the Extension that opened it answers, the page shows three setup steps: choose your languages, create an account or sign in (optional; on that same page, with the email and password or Google sign-in described in Section 1b — the account is made on our website, and the Extension is then handed its own sign-in exactly as from the sign-in page), and start with a first video, with a switch for marking your words on web pages. The page passes your choices straight to the Extension inside your browser, which stores them on your device (Section 3); they are not sent to our servers. To show the steps, the page asks the Extension for its current settings and whether you are signed in (and with which email address). The page's address names the Extension so it can reach it.

The settings page on our website talks to the Extension the same way, only with its own message type and the same check of who is asking. To show its switches, it asks the Extension for your settings: your two languages, the languages on offer, whether each video site, the highlighting of your words and the usage stats (Section 1c) are on, the list of websites where you switched the marking of your words off (Section 1b), whether you are signed in (a yes or no, not your email address), and the Extension's version and edition. When you change a setting there, the page passes the new value to the Extension, which checks it and stores it on your device (Section 3). The Extension answers only our website, does not send any of this to our servers, and puts no saved words, tokens or email address into it. Turning the usage stats off there is reported once, as in Section 1c.

When you uninstall it, your browser opens a farewell page on our website. This is registered with the browser in advance, so the browser opens it on its own; the Extension is already gone at that point and cannot decide otherwise.

Both addresses carry the anonymous analytics identifier of Section 1c, so that a visit can be counted against the install it belongs to rather than as an unrelated stranger. If you have turned analytics off, the fixed placeholder opted-out is sent in place of the identifier — the same value for everyone who opted out, which identifies no one. The farewell page is opened by the browser regardless of that setting; what changes is that it carries no identifier of yours.

Visits to our website are ordinary web requests and reach our site with your IP address, which we do not store.

g. Feedback you send us

The Extension has a Send feedback screen in its sidebar settings, and the one-time "Enjoying Lingogram?" card offers a short feedback box if you answer "Not really". Nothing is sent until you press Send. When you do, we receive:

This works whether or not you are signed in. The message is stored in our Firebase database (Section 4) and is read by the developer to understand what broke and, where you gave us a way to, to reply. It is not used for anything else. Sending is capped at a fixed number of messages per day across all users (currently 500), so a message can occasionally fail to send; the screen tells you if it did.

h. Importing your Google Translate saved phrases

Only if you start it yourself: with Import from Google Translate on the Extension's Settings page, or with the Lingogram icon the Extension adds to the toolbar of the Saved panel on translate.google.com. To place that icon, the Extension looks only at the layout of the Google Translate page, never at its text, and sends nothing from it. When you start the import, the Extension opens translate.google.com/saved in a background tab, reads the list of phrases saved in the Google account you are signed in to there, and closes the tab. The list is read inside your browser; the page itself is not sent to us, and the Extension does nothing else with your Google account. If you are not signed in to Lingogram, the list is read only to show you how many phrases were found, and nothing is saved until you sign in and start the import again.

From each saved pair the Extension keeps only the side in the language you are learning, compares those words with your Lingogram list, and shows how many are new before anything is saved. When you confirm, each new word is saved exactly like a word you save while watching (Section 1b), without subtitle context. Google's translations, the other side of each pair, and phrases in other languages are not saved or sent anywhere. Words you removed from Lingogram earlier are not brought back.

2. How We Use Your Information

We use the information above only to:

We do not use your information for advertising, profiling, or any purpose beyond providing the sync, word lookup, diagnostics, and feedback features and the aggregate usage counting described here.

3. Local Storage (On Your Device)

The Extension uses your browser's extension storage (chrome.storage) to keep, on your device only:

This local data never leaves your browser except where Section 4 describes (saved words synced to the cloud, and kept words uploaded when you sign in). Signing out removes the authentication tokens, email, user ID, and the local list of words synced from your account from your device; the words kept in your browser stay.

4. Cloud Storage and Third-Party Services

When you are signed in, your account and saved vocabulary are stored using Google Firebase (Firebase Authentication, Cloud Firestore, and Secure Token Service), operated by the developer on Google Cloud infrastructure. Google processes this data as our service provider; see Google's Privacy Policy at https://policies.google.com/privacy. Access is restricted by Firestore security rules so that you can only read and write your own data. The diagnostic reports of Section 1b and the feedback messages of Section 1g are written to the same database; the Extension can write them but never read them back. Words kept in your browser (Section 1b) reach this database only after you sign in.

The service-status messages described in Section 1d are downloaded from the same Firebase project. That collection is public and read-only from the Extension: it contains only messages we write, no user data, and the Extension can read it but never write to it.

Word lookups (Section 1e) go to our dictionary service, which we run on Google Cloud. To answer them it uses Wiktionary data from kaikki.org (the word only) and, when that has no entry, the OpenAI API (the word or phrase, your language and the subtitle lines that came with it), as described in Section 1e. OpenAI processes these requests as our service provider under its API terms; see https://openai.com/policies/privacy-policy.

The anonymous usage events described in Section 1c are sent to Google Analytics 4 (via the Measurement Protocol) unless you turn analytics off. Google processes those events for us as our service provider, under the same Google Privacy Policy. Firebase and Google Analytics are used as two separate services and we do not send anything to Google Analytics that would let the two be joined together.

To display subtitles, the Extension fetches subtitle (.vtt) files directly from your browser to the HDrezka / Voidboost content delivery network as you watch. These requests:

A phrase you select, or a saved phrase you point at on a web page, is sent to Google Translate (translate.googleapis.com and translate.google.com) directly from your browser, as described in Section 1e: the phrase and your language only, without cookies or any identifier of ours. Google handles those requests under its own Privacy Policy and terms.

The import of Section 1h opens translate.google.com in a background tab. That is an ordinary visit to Google Translate in your browser, signed in to your Google account if you are, and Google handles it under its own Privacy Policy. Nothing from it reaches us except the new words you confirm.

5. Data Sharing and Sale

We do not sell, rent, or trade your personal data. We do not share it with any third party except: Google (Firebase, Google Cloud and Google Analytics) as the infrastructure and analytics providers described in Section 4; Google Translate, which receives the text of a phrase you select or point at (Section 1e); kaikki.org, which our dictionary service asks about a looked-up word, and OpenAI, which it asks about a word or phrase with its subtitle lines when the dictionary has no entry (Section 1e); or where required by law. None of them receives your name, email or account identifier from us. We do not use your data for advertising.

6. Data Retention and Deletion

7. Security

Authentication tokens are kept in your browser's extension storage. All network requests are made over HTTPS. Cloud data is protected by Firebase Authentication and Firestore security rules that restrict each user to their own records. No method of transmission or storage is 100% secure, but we take reasonable measures to protect your information.

8. Children's Privacy

The Extension is not directed to children under 13 (or the equivalent minimum age in your jurisdiction), and we do not knowingly collect personal data from them.

9. Changes to This Policy

We may update this Privacy Policy from time to time. Material changes will be reflected here with an updated "Last updated" date. Continued use of the Extension after an update constitutes acceptance of the revised policy.

10. Contact

For any questions about this Privacy Policy, or to request deletion of your account and data, please email support@lingogram.ai. To delete your account, write from the email address the account uses, so we can confirm it is yours. Please do not post your email address in a public place, such as a GitHub issue.


Lingogram is an independent tool and is not affiliated with, authorized, or endorsed by HDrezka, Voidboost, or any of the video platforms it supports.