Build TV input services
Stay organized with collections
Save and categorize content based on your preferences.
Watching live TV shows and other continuous, channel-based content is a big part of the TV
experience. Users are accustomed to selecting and watching shows on TV by channel browsing. The TV
Input Framework creates channels for publishing video or music content in the TV programming
guide.
Caution: The TV Input Framework is meant to be used by OEMs to build
channels for the Android system TV app. It is supported in Android 5.0 (API level 21) through
Android 7.1 (API level 25) only. Third-party apps should build channels for their content using
the Android TV home screen APIs. See Recommend
content on the home screen for details.
The TV Input Framework provides a unified method for the receiving and playback of live video content
from hardware sources, such as HDMI ports and built-in-tuners, and software sources, such as video
streamed over the internet.
The
framework lets developers define live TV input sources by implementing a TV input service.
This service publishes a list of channels and programs to the TV Provider. The live TV app on a TV
device gets the list of available channels and programs from the TV Provider and displays them to a
user.
When a user selects a specific channel, the live TV app creates a session for the associated
TV input service through the TV Input Manager and tells the TV input service to tune to the
requested channel and play the content to a display surface provided by the TV app.
Figure 1. Functional diagram of the TV Input Framework.
The TV Input Framework is designed to provide access to a wide variety of live TV input sources
and bring them together in a single user interface where users can browse, view, and enjoy content.
Building a TV input service for your content can help make it more accessible on TV devices.
For more details, check out the
TV Input Service sample app.
Topics
- Develop a TV input service
- Learn how to develop a TV input service that works with the system TV app.
- Work with channel data
- Learn how to describe channel and program data for the system.
- Manage TV user interaction
- Learn how to present overlays, manage content availability, and handle content selection.
- Support time-shifting
- Learn how to support time-shifting in your TV input service.
- Support content recording
- Learn how to support content recording in your TV input service.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# Build TV input services\n\nWatching live TV shows and other continuous, channel-based content is a big part of the TV\nexperience. Users are accustomed to selecting and watching shows on TV by channel browsing. The TV\nInput Framework creates channels for publishing video or music content in the TV programming\nguide.\n\n**Caution:** The TV Input Framework is meant to be used by OEMs to build\nchannels for the Android system TV app. It is supported in Android 5.0 (API level 21) through\nAndroid 7.1 (API level 25) only. Third-party apps should build channels for their content using\nthe Android TV home screen APIs. See [Recommend\ncontent on the home screen](/training/tv/discovery/recommendations) for details.\n\nThe TV Input Framework provides a unified method for the receiving and playback of live video content\nfrom hardware sources, such as HDMI ports and built-in-tuners, and software sources, such as video\nstreamed over the internet.\n\nThe\nframework lets developers define live TV input sources by implementing a TV input service.\nThis service publishes a list of channels and programs to the TV Provider. The live TV app on a TV\ndevice gets the list of available channels and programs from the TV Provider and displays them to a\nuser.\n\n\nWhen a user selects a specific channel, the live TV app creates a session for the associated\nTV input service through the TV Input Manager and tells the TV input service to tune to the\nrequested channel and play the content to a display surface provided by the TV app.\n\n\n**Figure 1.** Functional diagram of the TV Input Framework.\n\n\nThe TV Input Framework is designed to provide access to a wide variety of live TV input sources\nand bring them together in a single user interface where users can browse, view, and enjoy content.\nBuilding a TV input service for your content can help make it more accessible on TV devices.\n\n\nFor more details, check out the [TV Input Service](https://github.com/googlesamples/androidtv-sample-inputs) sample app.\n\nTopics\n------\n\n**[Develop a TV input service](/training/tv/tif/tvinput)**\n: Learn how to develop a TV input service that works with the system TV app.\n\n**[Work with channel data](/training/tv/tif/channel)**\n: Learn how to describe channel and program data for the system.\n\n**[Manage TV user interaction](/training/tv/tif/ui)**\n: Learn how to present overlays, manage content availability, and handle content selection.\n\n**[Support time-shifting](/training/tv/tif/time-shifting)**\n: Learn how to support time-shifting in your TV input service.\n\n**[Support content recording](/training/tv/tif/content-recording)**\n: Learn how to support content recording in your TV input service."]]