Last updated: 2026-07-25
Smart Video Controls is built privacy-first. This document explains exactly what data the extension reads, what it stores, and where it goes.
To do its job — keyboard shortcuts and automatic position resume — the extension reads:
<video> elements on the page you're watching. Specifically currentTime, duration, paused, playbackRate, and volume. These are read in-memory only; we do not store the video content.#…) is stripped before storage.>, <, and any custom shortcuts you set, only when no input field is focused.We do not read:
<video> and <iframe> elements).Extension-scoped storage — not accessible to any website. Everything below lives in chrome.storage.local (this device only) except your playback positions, which live in chrome.storage.sync so Chrome can mirror them to your other devices:
svc_pos::<episode_url> — your playback position per episode. Auto-deleted after 15 days of inactivity. Stored in chrome.storage.sync, not chrome.storage.local: Chrome mirrors that area to your other devices signed in to the same Chrome account, which is how free cross-device resume works. It travels via Google under your own account and is never sent to us. If Chrome's sync quota is full the entry falls back to local storage on this device only.svc_shortcuts — your custom keyboard bindings.svc_disabled_hosts — list of sites you've disabled the extension on.svc_usage_stats — counts of which shortcuts you used in the last 7 days, shown in the popup. Never leaves your device.svc_resume_events — timestamps of automatic position resumes in the last 7 days, used to estimate the "time saved" figure in the popup. Never leaves your device.svc_lifetime_stats — a running total of the seconds the extension has saved you (forward skips, auto-resumes, and time banked while watching above 1x speed), plus the per-source split shown as the popup's "You've saved…" line. Never leaves your device.svc_telemetry_pending — the daily tally of usage counts (shortcuts, resumes, popup opens, estimated seconds saved) waiting to be flushed. See "Product analytics" below.svc_telemetry_enabled — your opt-in/opt-out choice for anonymous usage stats. Defaults to on.svc_telemetry_last_flush — timestamp of the last successful stats report, used to send at most one report per day.svc_privacy_notice_2026_07_ack — whether you've dismissed the one-time notice about this policy change. Never leaves your device.svc_auth_token, svc_refresh_token, svc_user_id — an anonymous identifier used to authenticate Pro requests. Created on install; tied to no real-world identity unless you redeem a license key.svc_canonical_user_id, svc_license_key, svc_is_pro — set only after you purchase Pro and activate a license key.If — and only if — you have purchased Pro and activated a license:
| Data | Where it goes | Purpose |
|---|---|---|
| Episode URL (no fragment) | Supabase Edge Function | Sync key |
| Playback position (seconds) and duration | Supabase Edge Function | Position to restore |
| Anonymous user ID | Supabase Edge Function | Tying your devices together |
| License key (at activation time) | Supabase Edge Function | Verifying your Pro status |
| Optional feedback text + rating | Supabase Edge Function | Bug reports / feature requests you write yourself |
All requests go over HTTPS to https://pnjsyklmibspekxgslos.supabase.co. No third parties are involved. We use Supabase as a database host; they process the data on our behalf and do not share it.
Free users' positions never reach our servers — that requires Pro. They do travel between your own devices via Chrome's built-in sync (see above), which is Google's infrastructure under your Chrome account, not ours. The extension authenticates anonymously at install time so feedback submission and the daily usage report below work.
To understand which features get used and how many people come back, the extension sends a small daily report to our backend over HTTPS. It contains only:
It is sent at most once per day, and even when every count is zero (a zero report simply means "still installed and the browser is alive" — that's how we measure retention). No URL, title, hostname, or page content is ever sent or stored — the payload is counts, a version string, and the anonymous ID.
You can turn it off at any time in the popup under Settings → "Share anonymous usage stats". When off, no report is sent. Raw report rows are deleted after 13 months (see Data retention).
storage — store positions and your shortcut settings locally.scripting — query <video> state in cross-origin iframe players (the extension's signature feature). Without this, video controls in embedded players would not work.alarms — wake the background service worker periodically: every 30 minutes to sync Pro positions across Chrome profiles, and every 4 hours as an opportunity to send the once-daily usage report.<all_urls> — we cannot know in advance which sites you'll watch videos on. We never read page content beyond <video> and <iframe> elements, and the extension is fully disabled on per-site basis via the popup.YouTube, X (Twitter), Facebook, Instagram, and any host you add to the per-site disable list in the popup. On those domains we do not run the content script at all.
No other third parties. No Google Analytics, no third-party analytics SDKs, no advertising. Usage stats are collected first-party (by us, directly) and contain no URLs, titles, or page content.
You can:
Material changes to this policy will trigger a popup notification on next launch and a version bump on the listing page.
Questions, deletion requests, or concerns: divyamrastogi2@gmail.com
Smart Video Controls is developed by Divyam Rastogi. This page was formerly hosted at javascriptbit.com.