Publish to Chrome & Firefox stores
Maintainer checklist for the official Auto-Tracker listing
Yes — we can list the WatchNext Auto-Tracker on the Chrome Web Store and Firefox Add-ons (AMO). Today the build on /extension is sideload-only; this page is the runbook to ship the official listings.
Users: you do not need this page to install. Use Browser extensions instead.
Current status
- Sideload zip — shipped at /downloads/watchnext-scrobbler.zip
- Chrome Web Store — not published yet
- Firefox AMO — not published yet (temporary `about:debugging` loads only)
- Source —
extension/watchnext/in the WatchNext repo (MV3, module service worker + content script)
Chrome Web Store
- Register a Chrome Web Store developer account (one-time registration fee, currently about $5 USD).
- Verify the developer contact email; set publisher name to WatchNext.
- Zip the
extension/watchnext/folder withmanifest.jsonat the root of the zip (not nested under an extra directory). - Dashboard → Add new item → upload zip.
- Complete listing: short description (≤132 chars in manifest), detailed description, screenshots (1280×800 or 640×400), 128px icon, category (Productivity / Entertainment).
- Fill Privacy disclosures: single purpose, host permissions justification, data usage (Auto-Tracker token stored locally; episode metadata POSTed to watchnext.app).
- Provide a privacy policy URL: https://watchnext.app/privacy (add an extension subsection if review asks).
- Distribution: public (or unlisted for a staged rollout).
- Test instructions for reviewers: create a WatchNext account, generate a Auto-Tracker token on Account, paste into extension options, play a Netflix episode for a show already in the library, finish (≥80%) and confirm it marks watched.
- Submit for review. Expect days of review; content scripts on
netflix.com,primevideo.comandamazon.com/gp/video/*only (Prime Video also plays there),hbomax.com,hulu.comanddisneyplus.comget extra scrutiny — justify each host.
Firefox Add-ons (AMO)
- Create a free Mozilla Add-ons developer account.
- Upload the same MV3 package (or an XPI). Mozilla signs the add-on.
- Complete listing, privacy policy, and permission justifications (same story as Chrome).
- Submit for review. After approval, users install from AMO instead of temporary debugging loads.
- Keep
browser_specific_settings.gecko.idstable (netflix-scrobbler@watchnext.app) across updates.
Edge users can usually install from the Chrome Web Store via the Edge add-ons flow.
What reviewers will care about
- Single purpose — “Mark episodes watched in the user’s WatchNext library when they finish them on supported streaming sites.”
- Host permissions — why we need each streaming host (
netflix.com,primevideo.com,hbomax.com/max.com,hulu.com,disneyplus.com: read player title/season/episode) andwatchnext.app(Bearer scrobble API only). - No remote code — all logic ships in the package; no eval / remote scripts.
- Token handling — dedicated
wns_Auto-Tracker token in extension storage; not the login cookie; revocable on Account; server stores SHA-256 only. - Library-only — extension never auto-adds shows; API returns
SHOW_NOT_IN_LIBRARYotherwise. - credentials: 'omit' — tracking request must not send session cookies.
- API base allowlist — production
https://watchnext.apponly (localhost optional for dev). - Clear test steps — Account → generate token → options → finish a library show on any supported site.
WatchNext checklist before submit
- [ ] Bump
manifest.jsonversionfor every store upload. - [ ] Rebuild
public/downloads/watchnext-scrobbler.zipfromextension/watchnext/. - [ ] Confirm unit/integration tests pass (
test/scrobble.test.js,test/scrobblerExtension.integration.test.js,test/extensionProviders.test.js). - [ ] Manual smoke: generate token, sideload, finish a library episode, revoke token, confirm 401.
- [ ] Privacy policy and Terms cover extension tokens, diagnostics, and no-guarantee language.
- [ ] Store listing screenshots (options page + Account token UI + library mark-watched result).
- [ ] After approval: update /extension to prefer store install links over sideload, keep zip as fallback.
- [ ] Plan for provider DOM changes — title/season parsing can break when a streaming site redesigns its player (see
docs/extension-providers.md); monitor and ship updates promptly.
Practical notes
- Store updates require a version bump and another review cycle.
- Netflix cannot block a store listing, but UI scraping is inherently brittle.
- Sideload remains useful for dogfooding and emergency hotfixes before review finishes.
- Do not broaden host permissions without a product reason — reviewers reject “just in case” access.
Install / user docs stay on /extension. Account token UI: /account#scrobble.