Awesome Smart TV Awesome

A curated list of awesome resources for building Smart TV apps

Smart TV is a growing platform of TVs having access to the internet and allowing to browse web-sites and install applications. It has own ecosystem with main players like Samsung, LG, Android TV and Apple TV. In this list you will find official and third-party resources for developing Smart TV apps and communicating with TV from remote devices.

Contents

Platforms

Below are the most popular platforms for Smart TV. The full list is here.

Samsung Tizen

Official resources

Third-party remote control libraries

  • samsungctl - Library and command line tool for remote controlling Samsung televisions via a TCP/IP connection. It currently supports both pre-2016 TVs as well most of the modern Tizen-OS TVs with Ethernet or Wi-Fi connectivity (Python).
  • samsung-tv-remote - Node.js module to remotely control Samsung Smart TV starting from 2016 (JavaScript).
  • homebridge-samsungtv2016 - A plugin for Homebridge that allows you to control your 2016 Samsung TV with HomeKit and Siri (JavaScript).
  • homebridge-samsung-tizen - A plugin for Homebridge that allows you to control your Samsung Tizen TV with HomeKit and Siri (JavaScript).
  • samsung-remote-models-2014-and-newer - Encrypted communication with the internal web service of Samsung TV models 2014+.
  • SmartCrypto - SmartView2 encrypted handshake API implementation in C/Python.
  • samsung-messagebox - Python script to show notifications on Samsung TVs.
  • samsung-tv-control - Library for remote control Samsung TV in your Node.js

Other

LG webOS

Official resources

  • webOS TV Developers Site - WebOS TV apps development principles, tutorials, API documentation and packaging tools.
  • webOS TV IDE + SDK - IDE for apps development including a Command Line Interface and emulator.
  • Connect SDK - Open source framework developed by LG that connects your mobile apps with multiple media device platforms. Currently supports 8 platforms. But seems abandoned.
  • webOS TV Developers Forum - Ask questions, share information and learn about Smart TV app development with other developers.

Third-party remote control libraries

  • lgtv2 - Node.js module for remote control of LG webOS TV via WebSocket messages (JavaScript).
  • node-red-contrib-lgtv - Module for Node-RED allowing remote control of LG webOS Smart TVs (JavaScript).
  • node-webos - Node.js module to discover and control webOS TVs (JavaScript).
  • lgtv2mqtt - Interface between LG WebOS Smart TVs and MQTT (JavaScript).
  • ares-webos-sdk - webOS CLI as separate NPM module (JavaScript).
  • pylgtv - Library to control webOS based LG Tv devices (Python).
  • LGWebOSRemote - Command line tool for webOS remote control of LG TVs (Python).
  • homebridge-webos-tv - A plugin for Homebridge which allows you to control your webOS TV.
  • PyWebOSTV - A generic & entensible WebOS 3.0 Client Library (Python2, Python3).
  • go-webos - A small Go library for interaction with webOS TVs (golang).

Videos

Other

  • openlgtv.org.ru - A non-commercial project for legal reverse engineering and research on LG Television firmware. Seems a bit outdated but contains a lot of information.
  • Identification of LG TV models 2011-2017 - How to get screen size, matrix type, year of development, series and ohter parameters from LG TV model name.

Android TV

Official resources

Articles

Apple tvOS

Official resources

  • tvOS Developers Site - SDK, documentation and tutorials for developing tvOS apps.
  • TVML - Apple TV Markup Language for creating tvOS apps.

Google Chromecast

Official resources

Cross-platform frameworks

  • react-tv - React development for TV: renderer for low memory applications and Packager for WebOS, Tizen, Orsay.
  • TOAST - Samsung open-source framework for multi-platform TV apps developemnt.
  • Enyo - LG framework for development apps for all major platforms, from phones and tablets to PCs and TVs.
  • Smartbox - Smart TV universal library for Samsung, LG, Philips, SmartTV Aliance, STB Mag app development.
  • Mautilus Smart TV SDK - A platform-agnostic framework for developing TV Apps. Supports Samsung, LG, Philips, Sony, Panasonic and VESTEL Smart TVs.
  • BBC TAL - An open source library for building applications for Smart TV developed by BBC engineers.
  • PureQML TV - A declarative front-end framework for web-based SmartTV/STB platforms. Has experimental support of Android TV.
  • ZombieBox - An open source Smart TV framework. Strongly typed JavaScript, component based, built-in D-PAD navigation management, abstract video API with DRM for all platforms. Supports many platforms like Tizen, webOS, Android TV, etc.

Remote control protocols

  • DLNA - Industry-wide standard for sharing data over a home network. Depending on the DLNA-compatible devices you own, you might be able to stream films from your laptop to your TV, play an MP3 stored on your phone over your hi-fi system, or print a photo from your tablet on your home printer.
  • DIAL - Developed by Netflix and Google, this protocol alows client devices (like smartphone, tablet, or computer) to discover apps on server devices (like a smart TV or streaming box) and launch content on them.
  • Wi-Fi Direct - Standard enabling devices to easily connect with each other without requiring a wireless access point.
  • Miracast - Standard for wireless connections from devices (such as laptops, tablets, or smartphones) to displays (such as TVs, monitors or projectors). Works over Wi-Fi Direct.

Navigation libraries

Testing

  • Suitest - Test automation solution for Smart TVs, gaming consoles, streaming sticks etc.
  • stb-tester - Automated User Interface Testing for Set-Top Boxes & Smart TVs (python).

Misc

  • LIRC - A package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls.
  • awesome-smarttv - Another list of Smart TV resources. Discovered after this one was already done 🙄.
  • docker-tizen-webos-sdk - Docker image with Samsung Tizen CLI and LG webOS CLI. Allows to develop, build, launch and debug Smart TV apps without installing Tizen Studio and webOS SDK.

Community

Contribute

Feel free to share your experience and contribute useful extension resources by creating new issue or pull request. Please read the contribution guidelines first. Thanks!

License

CC0