One really interesting new set of APIs is the Tv Control API, published recently by the Tv Control Working Group. This is the first public working draft, meaning the first version that they’ve published. Now people can comment on the API design and specifications. After a few more revisions and drafts, it will be finalized and become a standard browser feature.
This specification defines an API for sourcing audio and video media, such as TV and radio from broadcast, IPTV, or other sources, with associated channel and program metadata, and allows presentation of the media using the <video> and <audio> HTML elements. The API is agnostic of any underlying audio or video sourcing technologies.
So what does this do? It essentially acts a lot like Android TV’s Live Channels app. It allows a web application to simply connect to a variety of different live content sources for playback and recording. It has some content restrictions built-in such as parental controls.
Similarly to the Live Channels app, there is a single
TVManager which contains all of the tuners and recordings. A
TVTuner can represent a real tuned signal, with an attribute for signal strength actually measured in dBm. A
TVTuner can have a number of
TVSource objects, which represent a single source of media for a single tuner.
A source can have a bunch of
TVChannel objects. These channels have some general properties like name, number, and network id. It also has a few unusual attributes such as
isEmergency to denote an emergency channel and
isFree to denote free-to-watch channels. The emergency interface has a number of properties for rich emergency information such as a channel to learn more broadcasted information or a URL to visit to learn more.
TVProgram interface just contains some general properties like start time, duration, description, and series.
Overall, you may find a lot of similarities to Android TV’s Tv Input Framework, and it’ll be interesting to see the applications that take advantage of this API. Will the web be able to fully take advantage of these APIs? Will there be drastic changes to the standard before being released? Will any browsers support it? It’s hard to say now, but we’ll definitely keep you up to date.