For your server to properly serve the content for each Smart TV platform that can connect, the User Agent provides the possibility to do (capability) profile matching. In essence, this allows you to see which video codecs, audio codecs, fonts and screen-resolution the Smart TV platform provides.
Some API specifications and features vary in implementation between Smart TV model groups. To ensure that your application runs on various TV models, you need to retrieve the TV platform information and implement your application features accordingly.
You can retrieve TV platform information in way.
UserAgent:
Using the Web standard Navigator interface, retrieve the user agent string for the device with the userAgent property:
var userAgent = navigator.userAgentconsole.log(userAgent);
You can retrieve the user-agent string and check the type of the Smart TV platform using e.g. PHP :
$_SERVER['HTTP_USER_AGENT']))
The user agent string has the following structure:
Component | Comment |
AppleWebKit/537.36 (KHTML, like Gecko) | WebKit version |
Chrome/53.0.* | The Chrome version |
Model/<CustomerName>-<DeviceModel> | “CustomerName” MUST represent the name of the OEM company “DeviceModel” MUST represent generalized or particular model name of the OEM device |
Mozilla/5.0 (<OS> <Architecture>) | ● The browser states it’s “Mozilla-compatible” ● OS - operating system, e.g. Linux or Android ● Architecture - CPU architecture, e.g. MIPS or ARM |
OMI/4.9.0.* | The Vewd Core version |
OPR/40.0.2207.0 | Opera Desktop version |
Safari/537.36 | Safari version |
For Whale OS devices:
For Smart TV platforms conforming Whale 2.x version, this user-agent string would be as example from AOC - NT671 (Cosmos):
Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/46.0.2207.0 OMI/4.20.4.54.Nebula.11 Model/Tango-NT72671(AOC;50U6305/78G;205.002.090.000;_TV_NT72671_Cosmos_2k20) SignOn/2.0 WhaleTV/2.0 NETTV/4.6.0.1 SmartTvA/5.0.0 en
It exists of a few different parts:
Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko)
This is the specific HTML5 compliant browser used for the Smart TV platform. It can be different for each Smart TV platform, however, or could not be there at all. You should not use this for identification purposes.
WhaleTV/2.0
This is the part that is the same for every HTML5 client. Only the part between parenthesis is the actual capability description, with which you can identify the AOC platform:
(AOC;50U6305/78G;205.002.090.000;_TV_NT72671_Cosmos_2k20) SignOn/2.0 WhaleTV/2.0 NETTV/4.6.0.1 SmartTvA/5.0.0 en
Here "WhaleTV/2.0" is the UI_profile name, which uniquely identifies the AOC platform as being a Whale OS platform.
This should provide you with a means to properly identify the Smart TV platform for your own purposes.
Pro Tip:
For identifying the Smart TV platform, use only the capability description part of the user-agent string - do not match the whole user-agent string.