Dual Subtitles

Dual Subtitles: Privacy Policy

English | Türkçe

Last updated: 2026-11-15

Dual Subtitles ("the extension") shows two subtitles at once on YouTube. This page says what the extension stores, what it sends, and to whom. We keep it short and plain.

The short version: your settings, your word book and your subtitles stay in your browser. Only when you press "Explain in context" does the word and its line go to our server and our AI provider (Cloudflare Workers AI). With Pro, two more features use our server: AI translation of subtitle lines and word book sync. We do not sell data.

What stays on your device

The extension stores these in your browser (chrome.storage):

  • Your settings (languages, styles, shortcuts, panel options). They are in Chrome's sync storage, so Chrome may sync them across your devices signed in to the same Google account.
  • Your choice of subtitle tracks for each video. This is stored with the video id on your device only.
  • A cache of subtitle text so a video does not load twice. It keeps up to 40 videos for up to 7 days.
  • Your word book (saved words, their sentence, the translation, the meaning in that line if you explained the word, the video id, the time and the title). Without Pro sync it stays on your device and only leaves in a file you export yourself. With Pro sync, see point 7 below. Deleted words leave a small marker (word, language, video id, time of the delete) so the delete reaches your other devices; markers are removed after 90 days.
  • The state of the on-device translation language packs.
  • If you sign in: your session token and your account name and email, so the extension can show you are signed in.
  • A random install id and a queue of usage events waiting to be sent (see below).

What we send to our server

Our server is at https://dualtitle.futuromy.com. The extension talks to it for these things.

  1. Usage events (anonymous). The extension sends short event records so we can see if subtitle loading breaks after a YouTube change. Each batch has a random install id (made on your device, not linked to you or your account), the extension version, and a list of events with a time. The events are only these:
    • yt.loaded: which kind of track the original and the translation are (uploaded, auto, youtube-translate, ai, or none)
    • yt.no_captions
    • yt.strategy_failed: which loading method failed (capture, toggle, plain) and a short reason (for example timeout, no-pot, http-error)
    • yt.strategy_fallback: which loading method worked after another failed
    • yt.empty_body
    • yt.rate_limited
    • yt.timeout: which step timed out (tracks, load, fetch)
    • yt.failed
    • yt.disabled: why the extension was switched off remotely (kill-switch, min-version)
    • popup.opened
    • explain.used: that an explanation was shown, from the cache or a model, and the plan (free or pro)
    • explain.limit: that the daily or per minute limit was reached, and the plan
    • ai.first_window: how long the first AI translated lines took, as a range (for example 3-6s)
    • ai.fallback: that AI translation failed for a video and YouTube's translation was used, with a short reason (for example failed, limit:monthly)
    • pro.paywall_shown: that the Pro screen opened, and from where (options, popup, limit)
    • pro.checkout_started, pro.purchased: which plan (monthly, yearly, lifetime). Payment details go to Polar, never to us
    • pro.trial_started

    We do not send video ids, video links, titles, channel names, subtitle text, the words you look up, or your settings. The code allows only the event names above. Events are only sent from the store version of the extension. Like any web request, your IP address reaches our host (Cloudflare) when the extension connects. We do not store it in the event records.

  2. Remote config. About every hour the extension downloads a small data file from our server (for example, updated YouTube selectors, a notice, or a kill switch). It is data only. It is never code. Nothing about you is sent with this request except the extension id.
  3. Account (optional). If you choose to sign in, you sign in on our website with an email and password or with Google. We store your email, your name and a hashed password (or the Google account link), and the session. We use your email to send account emails, such as confirming your address and resetting your password. These emails are sent through our email provider, EmailFlare, which runs on Cloudflare. The extension keeps a session token so it can ask the server who you are.
  4. Plan status. If you are signed in, the extension asks our server about your plan (free, trial, Pro) about every hour and when you open the popup. No subtitle or viewing data is part of this.
  5. Explain in context (optional, sign in required). Only when you press "Explain in context" on the word card (or, with Pro, turn on "Explain automatically"), the extension sends to our server: the word you clicked, its subtitle line, the line before and after it, the translated line on screen, the on-device guess for the word, the two languages and the video id. Our server sends the word, the lines and the languages (not the video id, not your account) to our AI provider, Cloudflare Workers AI. The answer comes back to the card.
    • These texts are not stored with your account. For the limits we count how many explanations your account used per day (a number, no text).
    • To answer the same question once, the server keeps the answer in a cache for up to 30 days. Its key is a hash of the video id, the line, the word and the two languages. The cache is not linked to you or any account.
  6. AI translation of subtitle lines (Pro, can be turned off). When a video has no human translation in your language, a Pro account gets the second line from our AI instead of YouTube's auto-translate ("Translation source" in the settings, "AI" by default for Pro). The extension sends to our server, about 10 lines at a time: the subtitle lines of the video you are watching (text, start time and length), up to 3 lines before and after for context, the video id, the caption track's language and kind, and the target language. Our server sends the lines and the languages (not the video id, not your account) to Cloudflare Workers AI.
    • We do not store the subtitle lines we receive. We store only our translation, in a shared cache for up to 90 days, so the next viewer of the same video gets it without a new AI call. Its key is the video id, the track, the two languages, the line numbers and a hash of the lines (a hash, not the text). The cache is not linked to you or any account.
    • For the monthly limit (100 hours of video) we count the seconds of video your account had translated per month (a number, no text).
    • The translated lines are shown with the label "AI translation". If our server fails, the extension uses YouTube's translation as before.
  7. Word book sync (Pro). If you have Pro and are signed in, your word book is copied to our server and from there to your other browsers signed in to the same account. For each saved word we store: the word, its translation, the sentence and its translation, the meaning in that line if you explained it, the two languages, the video id, the time, the video title and when you saved or deleted it. At most 5,000 words per account. Free accounts do not sync; their word book stays on the device.

If you do not sign in, the extension does not send your email or any account data, and it works the same for all current features except "Explain in context", which needs an account.

Payments

If you buy Pro, the payment is handled by Polar (polar.sh), our payment provider. You enter your card details on Polar's page, not in the extension and not on our server. We get your plan status and an order id from Polar. See Polar's privacy policy for how they handle your data.

Third parties the extension talks to

  • YouTube. To get subtitles, the extension asks YouTube for the caption files of the video you are watching, the same way the YouTube player does. These requests go to YouTube itself. Google's privacy policy applies to them.
  • Chrome on-device Translator. When you click a word or a line, the translation runs inside Chrome on your device. The text does not leave your device. Chrome may download a language pack the first time.
  • Cloudflare Workers AI. Only for "Explain in context" and, with Pro, AI translation of subtitle lines (see above). Our server sends it the word or the lines and the languages, not your account and not the video id. Cloudflare's privacy policy applies.
  • Wiktionary (Wikimedia). If your browser has no on-device Translator and the word is English, the extension asks en.wiktionary.org for its definition. This sends the word you clicked, your IP address and a header with the extension name to Wikimedia. At most 6 such requests are made per minute. Wikimedia's privacy policy applies.

We use no advertising, no tracking scripts and no remote code.

How long we keep data

  • Usage events: anonymous (a random install id, no account, no video). We keep them as long as they help us find and fix problems.
  • Account data: kept until you ask us to delete the account.
  • Explanations: the shared answer cache keeps an answer up to 30 days. Per minute counters are deleted after 2 days, daily counters stay with the account until it is deleted.
  • AI line translations: the shared cache keeps our translation up to 90 days. The monthly seconds counter stays with the account until it is deleted.
  • Synced word book (Pro): kept with your account until you delete the words or the account. A deleted word stays as a marker without its sentence.
  • Data on your device: kept until you remove it (see below).

How to delete your data

  • On your device: open the extension settings, "Data" page, and press "Clear cache" to remove subtitle cache and "Reset all settings" to reset settings. In the "Words" page, delete saved words one by one. Removing the extension from Chrome removes its data from your device.
  • Your account and server data: email info@futuromy.com from the address you signed up with and ask us to delete your account. We delete the account, your plan record, your synced word book and your sessions by hand, as soon as we can. Usage events are not linked to your account, so we cannot find yours.

Children

The extension is not made for children under 13 and we do not knowingly collect data from them.

Changes

If we change this policy, we change the date at the top. For big changes we will say so in the extension.

Contact

info@futuromy.com

This extension is not affiliated with, endorsed by, or sponsored by YouTube or Google. YouTube is a trademark of Google LLC.

Shared account, payment and hosting details for all Futuromy extensions are in the Futuromy Extensions privacy policy.