Chrome (Manifest V3) extension that makes Prime Lite render on a laptop while the request and JS environment report the browser as a Phone or Fire TV. Intended for testing the Prime Lite experience on device types that aren't officially offered on laptop in India.
| Layer | Mechanism | Signals spoofed |
|---|---|---|
| Network requests | declarativeNetRequest header rewrite |
User-Agent, Sec-CH-UA, Sec-CH-UA-Mobile, -Platform, -Platform-Version, -Model |
| JS runtime | main-world content script | navigator.userAgent, appVersion, platform, vendor, maxTouchPoints, userAgentData (+ getHighEntropyValues), optionally screen.* |
The header rewrite is the reliable core — that's what Amazon's backend keys on to decide which experience to serve. The JS overrides cover client-side device checks.
chrome://extensions→ enable Developer mode (top right).- Load unpacked → select the folder where you downloaded the extension files.
- Pin the extension, click it, toggle Emulation on, pick Phone or Fire TV.
- Open / reload the Prime Lite tab.
Settings persist. Reload the target tab after any change (device detection usually runs once at page load).
- Device:
Phone(Android, mobile client hints) orFire TV(Fire TV Stick 4K UA). - Emulate device screen size: off by default, so the page renders at your
laptop's real resolution while still identifying as the device. Turn on if an
app path reads
screen.width/heightand you need those to match too.
Edit profiles.js — user-agent strings, client-hint headers, navigator.userAgentData
values, and screen sizes all live there. To emulate a specific real device, copy
its navigator.userAgent and chrome://version values into a profile.
To cover more Amazon/Prime domains, add them to both TARGET_DOMAINS in
profiles.js and host_permissions in manifest.json.
Actual video playback is gated by DRM device attestation (Widevine/PlayReady security levels, device certificates, hardware-backed keys) enforced below the HTTP layer. A browser extension cannot spoof that. So you can drive the Prime Lite UI, catalog, layout, routing, and API responses as a phone/TV device, but DRM-protected streams may still refuse to play on the laptop. For UI/functionality QA that's expected and usually sufficient.
manifest.json— MV3 config, permissions, content-script registrationprofiles.js— device profiles + shared config (edit this)background.js— builds/updates the header-rewrite rules, toolbar badgecontent.js— isolated world: passes the active profile to the main worldinject.js— main world: overridesnavigator/screenbefore page scriptspopup.html/popup.js— the toggle + device picker UI