Awesome Smart TV 
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
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
- 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 :roll_eyes:.
- 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.
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
