privacy policy
Privacy Policy
Last updated 2 July 2026
Loom is a browser extension (and companion web app) that renders dual-language subtitles with phonetic annotations on streaming video. This page explains exactly what data Loom sends out of your browser, and why. The short version: subtitle text for processing, and an optional owner key if you set one. Nothing else.
What we send
When you activate Loom on a video, the extension reads the subtitle text from the tracks the site already serves to your browser, deduplicates it, and sends the unique subtitle strings to api.loom.nerv-analytic.ai for romanization (e.g. “東京” → “Tōkyō”) and per-character annotation (e.g. furigana, Pinyin). Each video produces roughly one request per subtitle track when you activate Loom; we do not send anything during playback after that.
The request carries only the subtitle text and the target language code. Romanization and annotation require server-side language tools (MeCab, pypinyin, aksharamukha, and others) that can’t run in the browser — that is the sole reason any text leaves your device.
What we don’t send
We do not send your account information, your viewing history, your playhead position, any unique device identifier, or any browser-level telemetry. The API receives the subtitle text and the language code, and nothing more.
Optional owner key (web app only)
The companion web app supports an optional owner key — set via loom.nerv-analytic.ai/?owner_key=… — which is sent as an HTTP header on API requests to bypass rate limits. It is stored only in your browser’s local storage and is removed when you clear it. The published browser extension does not offer or transmit an owner key; its only stored data is your display preferences and the on/off toggle.
Retention
To avoid recomputing identical text, the Loom API keeps a processing cache: the subtitle strings it has romanized or annotated, stored as anonymous text with no record of which video they came from, who requested them, or any IP address. Identical text is stored once, no matter how many people process it.
Training corpus (opt-in)
Separately, and only when you choose to contribute, Loom keeps a training corpus used to improve its annotations, romanization, and optical-character-recognition research. A contribution records the media’s title or platform ID, the caption text with its timing, and — for uploaded subtitle files — the subtitle styling. It records nothing about you: no account, no IP address, no device or install identifier. Identical content is stored once regardless of how many people contribute it, so the corpus describes media, not viewers.
In the browser extension, contribution is off until you accept the ask shown after installation (or turn on “Contribute caption data” in the settings panel — the same place you can turn it off at any time). In the web app’s generator, it is controlled by the visible “Contribute caption data” checkbox next to the Generate button, which you can untick per run. Turning contribution off stops all future contribution immediately.
Third parties
We do not share data with third parties. We do not use analytics services. We do not run advertising.
Your rights
Uninstalling the extension removes all locally-stored preferences and the owner key. The Loom API holds no per-user records, so there is nothing server-side to delete.
Contact
Questions about this policy? privacy@nerv-analytic.ai.