Privacy Policy
MaruComprehension Chrome Extension · Last updated: July 3, 2026
Short version: MaruComprehension stores everything locally on your device. Your API token never leaves your browser except to reach MaruMori directly. No tracking, no analytics, no ads.
What this extension does
MaruComprehension is an unofficial fan app that connects to your MaruMori account to fetch your learned vocabulary and kanji. It uses that data to:
- Color-highlight subtitles and transcripts on Comprehensible Japanese, Nihongo-Jikan, and YouTube — known words in one color, unknown in another
- Calculate a comprehension score for each video based on how many subtitle words you already know
- Show hover cards with reading, definitions, and known/unknown status when you hover over any Japanese word in a subtitle or transcript
- Display a word sidebar listing all unknown words in the current video with JLPT level indicators
- Save a watch history and an unknown word frequency list so you can track progress over time
- Let you mark words as Known directly from a hover card, stored separately from MaruMori
- Automatically track immersion time spent watching Japanese video, with a daily/streak view and a breakdown by source, plus a manual "add time" entry for sources it can't detect (e.g. a book)
- Run an optional focus timer for study sessions, which can add its duration to your immersion time and play a sound or show an on-screen notice when it finishes
- Add a right-click menu item to search any selected word or phrase on MaruMori's dictionary
- Let you export or import all extension data as a single file, to move your setup to another device
Data stored on your device
All data is stored locally using chrome.storage.local and never leaves your device except as described in Network requests below.
- MaruMori API token — pasted voluntarily to connect your account
- Vocab and kanji lists — downloaded from MaruMori and cached locally so scoring works without repeated API calls
- Watch history — titles, URLs, comprehension scores, and watch counts for Japanese videos you have watched
- Unknown word frequency — words that appeared as unknown across your watched videos, with occurrence counts
- Manually known words — words you have marked as Known from hover cards, stored separately from MaruMori
- Immersion tracking data — daily watch-time totals, a breakdown by source (YouTube, CIJ, Nihongo-Jikan, local player, etc.), and any manual time entries you add
- Focus timer settings — your last-used duration and sound/on-screen-effect preferences
- Settings and preferences — subtitle style, hover toggle, badge visibility, and other UI preferences
You can clear watch history, word data, and immersion tracking data at any time from within the extension. Removing the extension from Chrome deletes all stored data.
If you use the export feature, a copy of this data — including your MaruMori API token — is written to a JSON file you choose to save. That file stays on your device unless you move it yourself; treat it like you would a password, since importing it elsewhere restores full access to the data it contains.
Network requests
The extension contacts only the following external services, and only ever with your own device making the request directly:
- MaruMori API (
public-api.marumori.io) — to fetch your vocab and kanji lists using your API token. Requested only when you connect your account or manually refresh.
- YouTube timedtext API (
youtube.com) — to fetch Japanese subtitle tracks for the video currently open, for comprehension scoring. No account credentials are sent; only a public caption endpoint is used.
- Jisho dictionary (
jisho.org) — to look up word definitions when you hover over a word. Only the individual word being hovered is sent.
- MaruMori website (
marumori.io) — opened in a new tab when you use the right-click "Search on MaruMori" menu item, or click a dictionary link in a hover card. This is a normal page navigation, not a background request.
No analytics services, crash reporters, advertising networks, or any other third-party servers are contacted. If you've configured the extension to work with a self-hosted local video server (e.g. on your own home network), it's contacted the same way any page you open in your browser would be — the extension doesn't reach out to it on its own.
Data sharing
No data is sold, shared, or transmitted to any party other than the services listed above. Those requests exist solely to provide the extension's features and contain no personally identifiable information beyond what you explicitly provide (your API token).
Permissions explained
- storage — saves your API token, vocabulary cache, watch history, immersion tracking data, and preferences locally on your device
- activeTab — reads the current tab's URL so the popup can show the correct comprehension score for the page you are on
- scripting — injects the subtitle coloring and hover card logic into supported video pages; fetches YouTube caption files from within the page context (required because YouTube rejects requests from extension origins); and shows the focus timer's sound/on-screen effect on the page you're viewing when a session ends
- alarms — keeps the focus timer counting down accurately in the background, even while the popup is closed
- notifications — shows a system notification when the focus timer finishes, if an on-page effect couldn't be shown
- contextMenus — adds the "Search on MaruMori" item to the right-click menu
- Host permissions — limited to the specific sites the extension supports: Comprehensible Japanese, Nihongo-Jikan, YouTube, MaruMori (site and API), Jisho, and — if you've set it up — your own self-hosted local video server
Disclaimer
MaruComprehension is an independent, unofficial fan app created by a MaruMori user. It is not affiliated with, endorsed by, or in any way associated with MaruMori.io, Comprehensible Japanese, or Nihongo-Jikan. All trademarks and brand names belong to their respective owners.
Children's privacy
This extension is not directed at children under 13 and does not knowingly collect data from them.
Changes to this policy
If this policy changes materially, the "Last updated" date above will be revised. Continued use of the extension after a change constitutes acceptance of the updated policy.
Contact
Questions or concerns? Email marucomprehension@gmail.com.