karl-rousseau / HybridTvViewer

[WIP] Web extension making Firefox & Chrome emulate iTV webpages instead of downloading them.
MIT License
67 stars 25 forks source link
browser-extension hbbtv webextension

           

A browser extension following such Hybrid interactive TV technologies:

hbbtv           oipf          atsc3

Preamble

Be aware if this browser extension version is still less than 1.0, do consider it as a prototype!

The purpose of this project is to avoid the default browser action which is to download various iTV (interactive television) application pages (based on the HTML standard with some proprietary methods). Here this browser extension is detecting those pages and injecting during page loading, an emulation layer (plus a bottom UI toolbar). In addition, unrecognized video formats are also handled by external HTML5 video plugins.

Installation

This browser extension is available for free on those distribution platforms:

Browser: Mozilla Firefox (not ESR) Google Chrome / Microsoft Edge Apple Safari
Minimum
version:
V67+ (for ES6 dynamic import) V63+ (for ES6 dynamic import) V14+ (2020)
Extension
availability:
☑️ unpublished (will try M$ Store)
➳ instead see the wiki dev install
?

Restrictions

Please note that not all video codecs are recognized by default in current (i.e. 2020) browsers:

Browser: Mozilla Firefox Google Chrome Apple Safari Android Chrome
codec H.264: ✅ plugin by Cisco ✅ present ✅ present ✅ present
codec H.265: ❌ no free license here (win10) ✅ in macOS 10.13+ ☑️ device-dependent

If you need to create your own video stream (within TS or DASH structure), I suggest you the well-known FFMPEG or MP4BOX tools. And in real life (i.e. without this extension), OpenCaster will help you to create your own TS file that can be broadcasted with a Dektec or Hides USB modulator and you will then be able to test your app on a true oipf/hbbtv device (like a Smart TV)

➳ see Tools

Screenshots

 

Features

Feature Description
:white_check_mark: auto-detection an analysis of HTTP server headers and embedded HTML header & meta tags, is performed
:white_check_mark: forced detection user on-clicked power button will force or disable iTV emulation (auto-saved in local storage)
:white_check_mark: bottom bar located underneath the screen rendering, some buttons (colored keys, resolutions for zoomed rendering, ...) are provided in order to interact with the emulator.
:soon: iDTV customization through above extension's popup (with various tabs), it enables the customization of various parameters (user-agent, OIPF capabilities, country, CAS id, DVB channels,...)
:construction: external inputs it handles some external inputs such as CI+ APDU reply message, Stream-Event content customization & triggering, DVB channels with customized LCN,...
:construction: video support enabled by the rendering of browser's unrecognized broadcast video streams: Mpeg-TS and Mpeg-DASH (with the help of external libraries) using HTML5 MSE interface.
:white_check_mark: dev support it includes emulated APIs and debugging information inside Firefox's performance inspector or Chrome's perf timeline using console.timeStamp() calls.

Usage

You can use the arrow keys ,,,, enter and backspace to navigate inside the emulated iTV application.
Colored keys are also mapped to R, G, B and Y keyboard keys.

For more info, have a look at the Wiki page.

Examples

The purpose of this extension is mainly to validate the MIT-xperts test suite under CHROME and FIREFOX.
Here are some URL examples that have been extracted from various sources:

Name Source URL
ARTE HbbTV French & German DTT TS http://www.arte.tv/hbbtvv2/index.html
MIT-xperts test suite DTT & DVB-S TS stream http://itv.mit-xperts.com/hbbtvtest/
Coyote browser urls DVB-S Astra™ TS stream https://www.coyotebrowser.com/hbbtv/applistastra/
... Catalog (with dead ones) http://urju.de/hbbtv/
http://www.hbbig.com/

If you want to create your own HbbTV application, you can start with such code:

CLICK ME

```html My 1st HbbTV app

```


Please note that there are more information on the Wiki page.
You can also check your page validity content using this HbbTV validator.
I also recommend you the BBC Tal framework which handles HbbTV devices through configuration files.

Dependencies

This project is not modifying those libraries and only doing dynamic calls at runtime on their CDN releases.

Abbreviations

References

Tools

Show your support

 Please don't forget to add a ⭐️ to this repository if this project helped you!