Titan SDK is a comprehensive library that provides a unified interface for interacting with Titan OS-powered TVs. It simplifies access to core TV features and helps you build apps that run consistently across the expanding Titan OS ecosystem. This guide will help you integrate the Titan SDK into your applications.

Why should I use the new Titan SDK?

Migrating to the Titan SDK ensures your app is ready for the next generation of Titan OS devices and capabilities. It replaces the legacy DeviceInfo API with a forward-looking SDK that supports multi-brand compatibility and enables integration with new platform features including Text-to-Speech, Text Magnification, and App Control.

Get started with Titan SDK

1

Compatibility check

Ensure your device is compatible with the SDK by checking the Platform Specifications.
2

Importing script

Import the script into the <Head/> tag at your project’s root HTML file:Note: Adding it to <Head /> will make sure the script is fully loaded before your app rendering.
<script
  src="https://sdk.titanos.tv/sdk/sdk.js"
  type="text/javascript"
/>
3

Access the global Titan SDK variable

Titan SDK is exposed as a global variable.
const titanSDK = TitanSDK;
console.log(titanSDK);

Supported brands and models

The Titan SDK is designed to support all TVs powered or maintained by Titan OS, offering a consistent integration experience across brands and devices. Today, this includes:
  • Selected Philips TVs from 2020 models
  • Selected JVC TVs starting from 2025 models
As Titan OS expands to more brands and devices, the SDK will ensure your app remains compatible with minimal adjustments. For the most up-to-date list of supported devices and their capabilities, please visit our platform versions page.

Accessibility

The SDK provides tools to integrate Text-to-Speech (TTS) and Text Magnification. These features are part of our ongoing effort to make TVs more accessible and to comply with the European Accessibility Act (EAA) requirements. Accessibility support is initially available on:
  • Philips 2025 models
  • JVC 2025 models
We are actively working to expand accessibility support to additional features and future models. For a comprehensive guide on integrating accessibility into your app, please refer to our Accessibility Integration Guide.

App Control

App Control allows your application to interact with and launch other applications on the Titan OS platform. This feature, while not new, is now fully integrated into the Titan SDK, initially providing the capability to open other apps. For more information, please visit our App Control page.

Migration from DeviceInfo API to Titan SDK

To help you transition from the DeviceInfo API to the new Titan SDK, we have prepared a dedicated migration guide and practical code examples. Visit our Migration to Titan SDK page to get started.

Dictionary

The library exposes a structured set of objects and functions to interact with the Titan OS environment. In this section, you’ll find a detailed dictionary of key components, organized for easier reference.

Device Information

Object/Function NameTypeDescription
deviceInfoObjectContains functions to retrieve device-specific information.
deviceInfo.getDeviceInfo()FunctionRetrieves detailed device information, including hardware and software specifics. Tailor experiences based on these capabilities.
getDeviceInfo() Return Properties The getDeviceInfo() function returns an object containing information about the device’s channel, product details, and some high-level capabilities. Below are the properties you can expect from the returned object:
Property PathTypeDescriptionExample Value
ChannelObjectContains information related to the device’s channel and app store context.
Channel.appStorestringThe name of the application store the device primarily uses.TitanOS
Channel.vendorstringThe vendor of the channel or platform.TPV
Channel.brandstringThe brand associated with the channel or platform.Philips
ProductObjectContains details specific to the device product.
Product.platformstringThe platform name of the device.TPN258E
Product.yearstringThe model year of the device.2025
Product.deviceIDstringA unique identifier for the device.b5778bff-de7f-5688-a815-cbf05a26fed0
Product.firmwareVersionstringThe version of the device’s firmware.058.002.179.041
Product.firmwareComponentIDstringThe identifier for the device’s firmware component.TPN258E
Product.macstringThe MAC address of the device’s network interface.94:bd:be:64:ed:f7
Product.WhaleAdIDstringThe advertising ID.27aa044c-0951-9ee2-9870-676d183a3d12
Product.languagestringThe device’s configured language.en
Product.countrystringThe device’s configured country.BG
Product.ifastringThe Identifier for Advertisers (IFA) or Device Advertising Identifier.883e340c-8877-464a-ab50-68f4ef62f955
Product.ifaTypestringThe type of Identifier for Advertisers (e.g., dpid).dpid
CapabilityObjectContains flags indicating the device’s supported features and technologies.
Capability.osstringThe operating system of the device.Linux
Capability.browserEnginestringThe browser engine used by the device.Blink
Capability.supportPlayreadyboolean | "unknown"Indicates support for Microsoft PlayReady DRM.
Capability.supportWidevineModularboolean | "unknown"Indicates support for Google Widevine Modular DRM.
Capability.support3dbooleanIndicates support for 3D content display.
Capability.supportKeyNumericbooleanIndicates if numeric keys (0-9) are supported on the remote control.
Capability.supportKeyColorbooleanIndicates if color keys (Red, Green, Yellow, Blue) are supported.
Capability.supportMultiscreenbooleanIndicates if the device supports multi-screen functionality.
Capability.multiaudioSupportbooleanIndicates if multiple audio tracks are supported for media playback.
Capability.TTMLInbandSupportbooleanIndicates support for TTML (Timed Text Markup Language) in-band subtitles.
Capability.TTMLOutofbandSupportbooleanIndicates support for TTML (Timed Text Markup Language) out-of-band subtitles.
Capability.supportUHDbooleanIndicates support for Ultra High Definition (UHD) display resolution.
Capability.supportFHDbooleanIndicates support for Full High Definition (FHD) display resolution.
Capability.supportHDRbooleanIndicates support for HDR High Dynamic Range
Capability.supportHDR_HDR10booleanIndicates support for HDR10 High Dynamic Range.
Capability.supportHDR_DVbooleanIndicates support for Dolby Vision High Dynamic Range.
Capability.supportMultiAudiobooleanIndicates support for multiple audio tracks in general.
Capability.supportTTMLInbandbooleanIndicates support for in-band TTML captions.
Capability.supportTTMLOutofbandbooleanIndicates support for out-of-band TTML captions.
Capability.supportAdobeHDSboolean | “unknown”Indicates support for Adobe HTTP Dynamic Streaming.
Capability.supportWidevineClassicboolean | “unknown”Indicates support for Google Widevine Classic DRM.
Capability.supportDolbyAtmosbooleanIndicates support for Dolby Atmos audio technology.
Capability.supportWebSocketbooleanIndicates support for WebSocket communication.
Capability.supportEMEbooleanIndicates support for Encrypted Media Extensions (EME).
Capability.hasStoragebooleanIndicates if the device has persistent local storage available.
Capability.supportAppleHLSbooleanIndicates support for Apple HTTP Live Streaming (HLS).
Capability.supportMSSmoothStreamingbooleanIndicates support for Microsoft Smooth Streaming.
Capability.supportMSSInitiatorbooleanIndicates support for Microsoft Smooth Streaming Initiator.
Capability.supportMPEG_DASHbooleanIndicates support for MPEG-DASH streaming.
Capability.drmMethodstringThe primary Digital Rights Management (DRM) method employed by the device.OIPF
Capability.supportOIPFbooleanIndicates support for Open IPTV Forum (OIPF) standards.

Accessibility

Object/Function NameTypeDescription
accessibilityObjectProvides functions to interact with the TV’s accessibility features.
accessibility.isTTSSupported()FunctionChecks if Text-to-Speech (TTS) is supported and enabled on the current device. Returns true or false.
accessibility .isTextMagnificationSupported()FunctionDetermines if text magnification is supported by the device. Returns true or false.
accessibility.getTTSSettings()FunctionRetrieves the TV’s current Text-to-Speech settings, including rate, pitch, and volume, for a personalized auditory experience.
accessibility.getTMSettings()FunctionRetrieves the TV’s current Text Magnification settings, such as zoom levels and text contrast.
accessibility.startSpeaking()FunctionInitiates Text-to-Speech for a given string, speaking the text through the TV’s audio output based on current TTS settings.
accessibility.stopSpeaking()FunctionStops any currently active Text-to-Speech output. Allows for control over speech interruption.
accessibility.onTTSSettingsChange()FunctionRegisters a callback for when TTS settings are changed by the user. Enables your app to react to these adjustments.
accessibility.onTMSettingsChange()FunctionRegisters a callback for when Text Magnification settings are changed by the user. Allows your app to update its UI based on new preferences.
accessibility .onTTSConfigurationChange()FunctionRegisters a callback for global TTS configuration changes, such as default voice or language.
accessibility .onTMConfigurationChange()FunctionRegisters a callback for global Text Magnification configuration changes.

App Management & Remote Control

Object/Function NameTypeDescription
appsObjectContains functions for overall application management.
apps.launch()FunctionInitiates the launch of another application. Takes a parameter for the app to be launched, and optionally data to pass along.
getRemoteControlKeyMap()FunctionRetrieves the current key mapping for the TV’s remote control. Understands button to action correlations.
setRemoteControlKeyMap()FunctionAllows customization or overriding of the TV’s default remote control key mapping. Useful for specific app behaviors.
onRemoteControlKeyMapChange()FunctionRegisters a callback when the remote control key mapping changes. Helps your app synchronize with user or system adjustments.

TypeScript

Currently the Titan SDK is based on Javascript. If you want to have access to the types, please
    <script
      src="https://sdk.titanos.tv/sdk/sdk.js"
      type="text/javascript"
    />

Real-World Examples & Resources

To see these features in action and to understand more about the integration, in addition to the following next pages listed at the end of this page, explore the following examples on GitHub:

Content Security Policy (CSP)

If your app uses Content Security Policies (CSP), you might need to allow our domain. Our SDK connects to services on *.titanos.tv (like for crash reports or updates). Please add *.titanos.tv to your CSP’s allowed connections (e.g., connect-src) to ensure everything works smoothly. This helps avoid issues where your app might block essential SDK features. If you have rules for iFrames (e.g., frame-src and child-src), it’s recommended to add our domain to your whitelist as well, but it’s not obrigatory. If your company policies requires to avoid the need of allowing our iFrame, it should not prevent you to use the library, but it will display an error/warning in the logs and some features might be affected, such as the App Conttrol.

known issues

Contact us

We welcome your feedback and encourage you to share any thoughts or suggestions as you test the SDK. Please email us at titan-sdk-support@titanos.tv with your questions or comments.

Next steps