How Apple adds new channels to Apple TV

Have you ever wondered how Apple adds new content to the Apple TV without an update? For those of us with iPhones and iPads, every new application requires either a download or software update before being available. What is done differently in the Apple TV?

In the rest of the iOS world, icons on the home screen typically refer to an application – tapping the icon launches an actual app installed on the phone, whether that app is provided by Apple in the operating system (Phone, Messages, Stocks, etc.) or is installed via the app store (Angry Birds). An application in the iOS world is a complete set of all files required – the actual application executable, artwork images, data files – and is installed on the device and invoked when you tap the icon. Apple TV is very different – so different I’m going to refer to the icons on the Apple TV home screen as channels. They are NOT a full application – they are, in most cases, an icon with a link to a remote URL.

All of the channels on the Apple TV come from a file that is fetched over the internet. This file, called ‘storefront’, contains definitions for all of the channels except ‘Settings’ and ‘Computers’. If you boot an Apple TV without an internet connection, these are the only two icons you will see. Inside this storefront file are the definitions for the structure and menus for the Movies, Music, TV Shows, and Podcasts sections of the iTunes store (hence the file named storefront). Additionally, all of the additional third-party channels are defined in this file. For a channel, the storefront file contains the menu title (Weather, Yahoo Screen, Netflix), links to the artwork for the icon at both 720 and 1080 resolutions, and a link to a javascript URL that hosts the actual ‘code’ for the channel.

As such, the Apple TV is very different than the rest of the iOS family of devices. The content on the home screen is dynamically generated, and will rarely require a software update to add content. New channels can be added by Apple simply by modifying the storefront file. The channel providers can likewise modify their channel content and functionality at any time, since the javascript is loaded only when you click on the channel. (Note: Apple includes a signature of the javascript in their storefront file, providing additional security. This would suggest that Apple has some type of approval process in place for channel updates, similar to how apps are approved on other iOS devices for inclusion in the App Store.)

Apple’s ‘built-in’ channels are the exception to this. The iTunes store channels for Movie, TV, Music, and Podcasts have their menus dynamically defined in the storefront file, but other Apple channels appear to be special cases as well.

Some of the more recent Apple channels follow the same structure as the other third-party channels. Trailers and iMovie Theater are defined just like the other third-party channels, with a link to a javascript file on a remote server. The older Apple-provide channels, namely Radio (internet radio stations), Photo Stream (now iCloud Photos), YouTube, and Flickr, are defined in the storefront file but do not have a link to a remote javascript file. This would indicate that the functionality of that channel is built into the software image. The final special case is iTunes Radio, which is a newer channel, but likely required special software for full functionality, and as such appears to be built into the image as well.

One of the more interesting things about the different channels on the Apple TV is that the methodology for adding content has changed over the years the device has been available. Most of the older channels are not dynamically generated, while all of the newer third-party channels are, and even some of the newer Apple-provided channels use this ‘javacript-on-a-remote-server’ approach. This would indicate that Apple has been evolving their approach to content on the Apple TV since its introduction, and are moving toward a more dynamic model to provide and update content, avoiding unnecessary software updates if possible. There have also been significant changes to how they validate and secure this content, which is necessary when so much content is dynamically generated.

The mix of static and dynamic content makes the Apple TV a very interesting device – Apple can immediately add content as they sign deals with the content providers, and nothing is required from the end user to make this content available.