Emulator

HbbTV Emulator & Testsuite

Develop and test HbbTV applications on your desktop, without a television set.

The extension injects an HbbTV/OIPF runtime into pages you explicitly allow: the OIPF object factory, video/broadcast, the A/V control object, the application manager, the key handling of a real remote control and a simulated DVB channel list. It follows the HbbTV profile of OIPF DAE as defined in ETSI TS 102 796 V1.7.1 — not the full OIPF scope.

Anything that Annex A of that standard marks as “not included” does not exist here either, because an emulator that offers more than the target device teaches you the wrong thing.
Version 2.0.0 Chrome 120+

In review for the Chrome Web Store. Until it appears there, load it unpacked — you do this weekly anyway.

Download .zip · 1.1 MB

sha256 019e4810748897f350a64cb7e18d029562eeb8cc2dae8df8276f51a406f2532f

Would rather hear from us when it reaches the store? Tell us once — we will not add you to anything.

Load unpacked

  1. 1Unzip it somewhere permanent.
  2. 2Open chrome://extensions, turn on Developer mode.
  3. 3“Load unpacked”, pick the folder.
  4. 4In Details, turn on “Allow user scripts”. Without it the page still gets the TV User-Agent header, but navigator.userAgent stays Chrome's — the Device tab warns you.

Allowed hosts

Add the host and port of the app you want to test — localhost:8080, or your staging server. Chrome asks you to grant permission for that host.

Nothing happens outside that list. That is the design, not a limitation.

What it emulates

  • OIPF object factory and the application/oipfApplicationManager lifecycle
  • video/broadcast: channel list, channel change, components, programme data, stream events, a test card
  • The A/V control object and HTML5 video, with adaptive playback via dash.js and hls.js — both bundled, no code is loaded from anywhere at runtime
  • Subtitles, trick play and reverse playback where the profile requires it
  • Keyset handling and the six gating layers of clause 10.2.2.1, including the DOM KeyboardEvent.code values from Table 12
  • Capabilities and configuration objects
  • An inspector overlay that shows what the app is doing to the emulator, live

The panel

Three working tabs, and a manual

The emulator side panel, App tab: load app, allowed hosts, and the switches used while working
App — what you are working on right now: load the app, allow its host, and the switches you flip while you work. Inspector, the 720p frame that shows the TV's 1280 × 720 coordinate system, console debug mode.
The emulator side panel, Device tab: UserAgent, document mode, broadcast, keys and browser protections
Device — the television you emulate. Which HbbTV version it claims, whether your document is served as XHTML, which channel is tuned, which key codes the remote sends, and whether the browser's own protections stay on.
The emulator side panel, Test tab: target, run controls and findings
Test — run the app against the standard and read the report. How the testing works →
The emulator side panel, Guide tab: the manual inside the panel
Guide — the manual, inside the panel. Every (i) explains the setting next to it, with the source in the standard where there is one.

Real screenshots of the real panel. The yellow band at the top is not a mock-up: the emulator keeps the state of the browser's protections visible at all times, because you are meant to notice it.

Profiles

Seven television profiles

Marketing nameSpec versionNote
HbbTV 1.5TS 102 796 v1.2.1
HbbTV 2.0v1.3.1
HbbTV 2.0.1v1.4.1default
HbbTV 2.0.2v1.5.1
HbbTV 2.0.3v1.6.1
HbbTV 2.0.4v1.7.1
HbbTV 2.0.5draftcandidate

Keys

Your keyboard is the remote

  • Rred
  • Ggreen
  • Yyellow
  • Bblue
  • ↑ ↓ ← →navigate
  • EnterOK
  • BackspaceBACK
  • Spaceplay
  • Ppause
  • Sstop
  • Fforward
  • Wrewind
  • 0 – 9numbers
Every binding can be changed under Device → Keys. Ctrl + Shift + H toggles the Inspector inside the page.

Limits

What this is not

It is a development tool, not a conformance test bench. It does not prove that your app runs on a real device. The renderer is Blink, not a device browser; performance, memory limits, codec support and real tuner timing all differ.

Not emulated, on purpose: PVR and recording, DRM of any kind, real tuner access, the DSM-CC object carousel and dvb:// URLs, AIT signalling, operator apps, companion screen, DIAL and media synchronisation. Access to these returns defined stubs so apps do not crash, but there is no functional emulation behind them.

And it emulates HbbTV, only HbbTV. For Tizen and webOS we use the vendor SDKs and real devices, because that is what those platforms give you.

Warning

A warning worth reading twice

For allowed hosts, the emulator can remove Content-Security-Policy and Strict-Transport-Security from responses — that is on by default, because HbbTV apps routinely need it — and can add a permissive CORS header, which is off by default. The side panel shows at all times which host currently has which protection disabled.

Put only hosts you develop yourself on the allowed list. A third-party host you allow loses, for the duration of the allowance, the protections its operator set.

Privacy

No account, no telemetry, no analytics, no tracking. Settings live in chrome.storage.local and are never synced to your Google account.

Two requests can ever leave your machine, both to api.anthropic.com and both only on your click: checking your API key when you save it, and the optional AI summary of a report. Without a key, the extension makes no network request of its own at all.

Full privacy policy →