Awesome
Awesome Smart TV
A curated list of awesome resources for building Smart TV apps
<a href="https://github.com/vitalets/awesome-smart-tv"><img align="right" width="150" src="https://user-images.githubusercontent.com/1473072/27913047-7c3a5e60-6267-11e7-8bd1-bef2bf3cd753.png"/></a>
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
- Cross-platform frameworks
- Remote control protocols
- Navigation libraries
- Testing
- Misc
- Community
Platforms
Below are the most popular platforms for Smart TV. The full list is here.
Samsung Tizen
Official resources
- Samsung TV Developers site - News, documentation and SDK downloads.
- Tizen TV Developers site - Full API documentation and guides for developing Tizen TV apps.
- Tizen Studio - IDE for TV apps development including Tizen TV Emulator.
- Smart View SDK - Official Android, IOS and JavaScript SDK for communication between remote device and Samsung Smart TV.
- Samsung TV Developers Forum - Ask questions and share tips when developing apps with Samsung SDKs.
- Samsung Smart TV Bug Bounty - If you find bug in Samsung TV, submit it here and get a reward $1000+.
- vscode-extension-tizentv - A Visual Studio Code extension that provides a lightweight IDE for Tizen application developers.
- Wits - A tool for reloading tv app's JavaScript/CSS without reinstalling the app every time you make a change.
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
- Identification of Samsung TV models 2008-2017 - How to get screen size, matrix type, year of development, series and other parameters from Samsung TV model name.
- Tizen Studio development references - Documents focused on web apps for Smart TVs e Professional Monitors, based in personal researches.
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
- LG Magic Motion Remote - Point, Click, and Control - Operate TV like a computer mouse.
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
- Android TV Developers site - Documentation, tutorials and best practises for building Android TV apps.
Articles
- How to develop Android TV App? - An article about developing apps for Android TV.
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
- Google Cast SDK - Official Google Cast SDK documentation and tutorials.
- TVs with Chromecast built-in - List of vendors supporting built-in Chromecast and advantages over traditional TV remote controller.
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
- lrud - Left, Right, Up, Down. A spatial navigation library for devices with input via directional controls.
- js-spatial-navigation - A javascript-based implementation of Spatial Navigation.
- react-js-spatial-navigation - A wrapper of js-spatial-navigation to react components.
- react-key-navigation - Spatial Navigation components for React. Similar to the "Focus Management" of the BBC TAL.
- react-spatial-navigation - HOC-based Spatial Navigation (key navigation) solution for React.
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.
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!